linux-stable/drivers/firewire
Stefan Richter 8b7b6afaa8 firewire: ohci: increase AT req. retries, fix ack_busy_X from Panasonic camcorders and others
Camcorders have a tendency to fail read requests to their config ROM and
write request to their FCP command register with ack_busy_X.  This has
become a problem with newer kernels and especially Panasonic camcorders,
causing AV/C in dvgrab and kino to fail.  Dvgrab for example frequently
logs "send oops"; kino reports loss of AV/C control.  I suspect that
lower CPU scheduling latencies in newer kernels made this issue more
prominent now.

According to
https://sourceforge.net/tracker/?func=detail&atid=114103&aid=2492640&group_id=14103
this can be fixed by configuring the FireWire controller for more
hardware retries for request transmission; these retries are evidently
more successful than libavc1394's own retry loop (typically 3 tries on
top of hardware retries).

Presumably the same issue has been reported at
https://bugzilla.redhat.com/show_bug.cgi?id=449252 and
https://bugzilla.redhat.com/show_bug.cgi?id=477279 .

In a quick test with a JVC camcorder (which didn't malfunction like the
reported camcorders), this change decreased the number of ack_busy_X
from 16 in three runs of dvgrab to 4 in three runs of the same capture
duration.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2009-01-24 11:17:27 +01:00
..
fw-card.c firewire: unnecessary BM delay after generation rollover 2009-01-20 19:29:51 +01:00
fw-cdev.c firewire: fix ioctl() return code 2008-10-15 22:21:10 +02:00
fw-device.c firewire: keep highlevel drivers attached during brief connection loss 2009-01-20 19:29:52 +01:00
fw-device.h firewire: keep highlevel drivers attached during brief connection loss 2009-01-20 19:29:52 +01:00
fw-iso.c dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
fw-ohci.c firewire: ohci: increase AT req. retries, fix ack_busy_X from Panasonic camcorders and others 2009-01-24 11:17:27 +01:00
fw-ohci.h firewire: fw-ohci: log regAccessFail events 2008-04-18 17:55:34 +02:00
fw-sbp2.c firewire: fw-sbp2: remove unnecessary locking 2009-01-04 23:50:36 +01:00
fw-topology.c firewire: unnecessary BM delay after generation rollover 2009-01-20 19:29:51 +01:00
fw-topology.h firewire: reread config ROM when device reset the bus 2008-04-18 17:55:36 +02:00
fw-transaction.c firewire: fix small memory leak at module removal 2009-01-04 23:50:37 +01:00
fw-transaction.h firewire: unnecessary BM delay after generation rollover 2009-01-20 19:29:51 +01:00
Kconfig firewire: Kconfig help update 2008-08-19 18:47:56 +02:00
Makefile firewire: prefix modules with firewire- instead of fw- 2007-05-27 23:21:01 +02:00