firewire: ohci: fix Agere FW643 and multiple cameras
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Fri, 28 Aug 2009 11:25:15 +0000 (13:25 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Sat, 5 Sep 2009 13:59:34 +0000 (15:59 +0200)
commitfc383796a8cc5df0a0c8633a16dd2e9528a16a63
tree92a231d28de6d396246a1136099d896a37be2332
parent1821bc19d54009b6f5e6462dd79074d728080839
firewire: ohci: fix Agere FW643 and multiple cameras

An Agere FW643 OHCI 1.1 card works fine for video reception from one
camera but fails early if receiving from two cameras.  After a short
while, no IR IRQ events occur and the context control register does not
react anymore.  This happens regardless whether both IR DMA contexts are
dual-buffer or one is dual-buffer and the other packet-per-buffer.

This can be worked around by disabling dual buffer DMA mode entirely.
http://sourceforge.net/mailarchive/message.php?msg_name=4A7C0594.2020208%40gmail.com
(Reported by Samuel Audet.)

In another report (by Jonathan Cameron), an FW643 works OK with two
cameras in dual buffer mode.  Whether this is due to different chip
revisions or different usage patterns (different video formats) is not
yet clear.  However, as far as the current capabilities of
firewire-core's isochronous I/O interface are concerned, simply
switching off dual-buffer on non-working and working FW643s alike is not
a problem in practice.  We only need to revisit this issue if we are
going to enhance the interface, e.g. so that applications can explicitly
choose modes.

Reported-by: Samuel Audet <samuel.audet@gmail.com>
Reported-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/ohci.c