]> git.baikalelectronics.ru Git - kernel.git/commit
firewire: ohci: work around VIA and NEC PHY packet reception bug
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Sat, 28 Aug 2010 12:21:26 +0000 (14:21 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Sun, 29 Aug 2010 07:17:31 +0000 (09:17 +0200)
commit1cd065c29b5a082a05aa37fe757f89b415061cd6
tree1cba172819b1395237adb69e34dfa469a63dbb68
parentd0164205b3a37b91e967d93b15d105acf0175639
firewire: ohci: work around VIA and NEC PHY packet reception bug

VIA VT6306, VIA VT6308, and NEC OrangeLink controllers do not write
packet event codes for received PHY packets (or perhaps write
evt_no_status, hard to tell).  Work around it by overwriting the
packet's ACK by ack_complete, so that upper layers that listen to PHY
packet reception get to see these packets.

(Also tested:  TI TSB82AA2, TI TSB43AB22/A, TI XIO2213A, Agere FW643,
JMicron JMB381 --- these do not exhibit this bug.)

Clemens proposed a quirks flag for that, IOW whitelist known misbehaving
controllers for this workaround.  Though to me it seems harmless enough
to enable for all controllers.

The log_ar_at_event() debug log will continue to show the original
status from the DMA unit.

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