[PATCH] ieee1394: ohci1394: increase AT req. retries, fix ack_busy_Xfrom Panasonic camcorders and others

From: Stefan Richter
Date: Tue Jan 20 2009 - 13:10:30 EST

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 in current kernels.

According to
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 .

Tested-by: Mathias Beilstein
Signed-off-by: Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx>
drivers/ieee1394/ohci1394.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux/drivers/ieee1394/ohci1394.h
--- linux.orig/drivers/ieee1394/ohci1394.h
+++ linux/drivers/ieee1394/ohci1394.h
@@ -26,7 +26,7 @@

#define OHCI1394_DRIVER_NAME "ohci1394"

-#define OHCI1394_MAX_AT_REQ_RETRIES 0x2
+#define OHCI1394_MAX_AT_REQ_RETRIES 0xf
#define OHCI1394_MAX_AT_RESP_RETRIES 0x2
#define OHCI1394_MAX_SELF_ID_ERRORS 16

Stefan Richter
-=====-==--= ---= =-=--

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/