Implement the MAIN_UTILITY register, which is utterly optional
but useful as a safe target for diagnostic read/write/broadcast
transactions.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
                        rcode = RCODE_TYPE_ERROR;
                break;
 
+       case CSR_MAINT_UTILITY:
+               if (tcode == TCODE_READ_QUADLET_REQUEST)
+                       *data = card->maint_utility_register;
+               else if (tcode == TCODE_WRITE_QUADLET_REQUEST)
+                       card->maint_utility_register = *data;
+               else
+                       rcode = RCODE_TYPE_ERROR;
+               break;
+
        case CSR_BROADCAST_CHANNEL:
                if (tcode == TCODE_READ_QUADLET_REQUEST)
                        *data = cpu_to_be32(card->broadcast_channel);
 
 #define CSR_CHANNELS_AVAILABLE         0x224
 #define CSR_CHANNELS_AVAILABLE_HI      0x224
 #define CSR_CHANNELS_AVAILABLE_LO      0x228
+#define CSR_MAINT_UTILITY              0x230
 #define CSR_BROADCAST_CHANNEL          0x234
 #define CSR_CONFIG_ROM                 0x400
 #define CSR_CONFIG_ROM_END             0x800
        bool broadcast_channel_allocated;
        u32 broadcast_channel;
        __be32 topology_map[(CSR_TOPOLOGY_MAP_END - CSR_TOPOLOGY_MAP) / 4];
+
+       __be32 maint_utility_register;
 };
 
 struct fw_attribute_group {