]> git.karo-electronics.de Git - linux-beck.git/commitdiff
firewire: ohci: initialize multiChanMode bits after reset
authorClemens Ladisch <clemens@ladisch.de>
Wed, 13 Jun 2012 20:29:20 +0000 (22:29 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Sun, 17 Jun 2012 17:35:26 +0000 (19:35 +0200)
OHCI 1.1 says:
| Since the value of this bit is undefined after reset in all IR
| contexts, software shall initialize this bit to zero in all contexts
| whether or not active to maintain the exclusive nature of this bit.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/ohci.c

index 922cd26b25e3cce883902c53124f862bcdd111df..c788dbdaf3bc6b51f779079909e339d26b063e25 100644 (file)
@@ -2279,6 +2279,11 @@ static int ohci_enable(struct fw_card *card,
 
        ohci->bus_time_running = false;
 
+       for (i = 0; i < 32; i++)
+               if (ohci->ir_context_support & (1 << i))
+                       reg_write(ohci, OHCI1394_IsoRcvContextControlClear(i),
+                                 IR_CONTEXT_MULTI_CHANNEL_MODE);
+
        version = reg_read(ohci, OHCI1394_Version) & 0x00ff00ff;
        if (version >= OHCI_VERSION_1_1) {
                reg_write(ohci, OHCI1394_InitialChannelsAvailableHi,