diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2010-06-10 02:35:37 -0400 |
---|---|---|
committer | Clemens Ladisch <clemens@ladisch.de> | 2010-06-10 02:35:37 -0400 |
commit | 3d1f46eb60b155c705e389ecdf313f11b4b91976 (patch) | |
tree | 6a28e68a7372d49f172f73a2c30e1a72dd124ffa /drivers/firewire | |
parent | a1a1132bd83d0aea51d4f19be4b4a58a064a0131 (diff) |
firewire: core: add CSR MAINT_UTILITY support
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>
Diffstat (limited to 'drivers/firewire')
-rw-r--r-- | drivers/firewire/core-transaction.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c index a61eb3fb9573..dd8ef650a7cb 100644 --- a/drivers/firewire/core-transaction.c +++ b/drivers/firewire/core-transaction.c | |||
@@ -1140,6 +1140,15 @@ static void handle_registers(struct fw_card *card, struct fw_request *request, | |||
1140 | rcode = RCODE_TYPE_ERROR; | 1140 | rcode = RCODE_TYPE_ERROR; |
1141 | break; | 1141 | break; |
1142 | 1142 | ||
1143 | case CSR_MAINT_UTILITY: | ||
1144 | if (tcode == TCODE_READ_QUADLET_REQUEST) | ||
1145 | *data = card->maint_utility_register; | ||
1146 | else if (tcode == TCODE_WRITE_QUADLET_REQUEST) | ||
1147 | card->maint_utility_register = *data; | ||
1148 | else | ||
1149 | rcode = RCODE_TYPE_ERROR; | ||
1150 | break; | ||
1151 | |||
1143 | case CSR_BROADCAST_CHANNEL: | 1152 | case CSR_BROADCAST_CHANNEL: |
1144 | if (tcode == TCODE_READ_QUADLET_REQUEST) | 1153 | if (tcode == TCODE_READ_QUADLET_REQUEST) |
1145 | *data = cpu_to_be32(card->broadcast_channel); | 1154 | *data = cpu_to_be32(card->broadcast_channel); |