]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob
8a67cf360905448349b5843b8ed013982497f1fd
[thirdparty/kernel/stable-queue.git] /
1 From stefanr@s5r6.in-berlin.de Sun Feb 8 11:54:08 2009
2 From: Stefan Richter <stefanr@s5r6.in-berlin.de>
3 Date: Sat, 7 Feb 2009 13:03:22 +0100 (CET)
4 Subject: ieee1394: ohci1394: increase AT req. retries, fix ack_busy_X from Panasonic camcorders and others
5 To: stable@kernel.org
6 Message-ID: <tkrat.6d48e1780cdff8b4@s5r6.in-berlin.de>
7 Content-Disposition: INLINE
8
9
10 From: Stefan Richter <stefanr@s5r6.in-berlin.de>
11
12 Commit 64c634ef83991b390ec0503e61f16efb0ba3c60b upstream.
13
14 Camcorders have a tendency to fail read requests to their config ROM and
15 write request to their FCP command register with ack_busy_X. This has
16 become a problem with newer kernels and especially Panasonic camcorders,
17 causing AV/C in dvgrab and kino to fail. Dvgrab for example frequently
18 logs "send oops"; kino reports loss of AV/C control. I suspect that
19 lower CPU scheduling latencies in newer kernels made this issue more
20 prominent now.
21
22 According to
23 https://sourceforge.net/tracker/?func=detail&atid=114103&aid=2492640&group_id=14103
24 this can be fixed by configuring the FireWire controller for more
25 hardware retries for request transmission; these retries are evidently
26 more successful than libavc1394's own retry loop (typically 3 tries on
27 top of hardware retries).
28
29 Presumably the same issue has been reported at
30 https://bugzilla.redhat.com/show_bug.cgi?id=449252 and
31 https://bugzilla.redhat.com/show_bug.cgi?id=477279 .
32
33 Tested-by: Mathias Beilstein
34 Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
35 Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
36
37 ---
38 drivers/ieee1394/ohci1394.h | 2 +-
39 1 file changed, 1 insertion(+), 1 deletion(-)
40
41 --- a/drivers/ieee1394/ohci1394.h
42 +++ b/drivers/ieee1394/ohci1394.h
43 @@ -26,7 +26,7 @@
44
45 #define OHCI1394_DRIVER_NAME "ohci1394"
46
47 -#define OHCI1394_MAX_AT_REQ_RETRIES 0x2
48 +#define OHCI1394_MAX_AT_REQ_RETRIES 0xf
49 #define OHCI1394_MAX_AT_RESP_RETRIES 0x2
50 #define OHCI1394_MAX_PHYS_RESP_RETRIES 0x8
51 #define OHCI1394_MAX_SELF_ID_ERRORS 16