Browse Source

firewire: ohci: initialize multiChanMode bits after reset

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>
Clemens Ladisch 13 years ago
parent
commit
e18907cc8a
1 changed files with 5 additions and 0 deletions
  1. 5 0
      drivers/firewire/ohci.c

+ 5 - 0
drivers/firewire/ohci.c

@@ -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,