firewire: add CSR BUS_TIME support
Implement the BUS_TIME register, which is required for cycle master capable nodes and tested for by the Base 1393 Test Suite. Even when there is not yet bus master initialization support, this register allows us to work together with other bus masters. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
This commit is contained in:
@@ -1104,6 +1104,17 @@ static void handle_registers(struct fw_card *card, struct fw_request *request,
|
||||
rcode = RCODE_TYPE_ERROR;
|
||||
break;
|
||||
|
||||
case CSR_BUS_TIME:
|
||||
if (tcode == TCODE_READ_QUADLET_REQUEST)
|
||||
*data = cpu_to_be32(card->driver->
|
||||
read_csr_reg(card, CSR_BUS_TIME));
|
||||
else if (tcode == TCODE_WRITE_QUADLET_REQUEST)
|
||||
card->driver->write_csr_reg(card, CSR_BUS_TIME,
|
||||
be32_to_cpu(*data));
|
||||
else
|
||||
rcode = RCODE_TYPE_ERROR;
|
||||
break;
|
||||
|
||||
case CSR_BROADCAST_CHANNEL:
|
||||
if (tcode == TCODE_READ_QUADLET_REQUEST)
|
||||
*data = cpu_to_be32(card->broadcast_channel);
|
||||
@@ -1132,9 +1143,6 @@ static void handle_registers(struct fw_card *card, struct fw_request *request,
|
||||
case CSR_BUSY_TIMEOUT:
|
||||
/* FIXME: Implement this. */
|
||||
|
||||
case CSR_BUS_TIME:
|
||||
/* Useless without initialization by the bus manager. */
|
||||
|
||||
default:
|
||||
rcode = RCODE_ADDRESS_ERROR;
|
||||
break;
|
||||
|
Reference in New Issue
Block a user