firewire: fw-ohci: TSB43AB22/A dualbuffer workaround
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Tue, 22 Jul 2008 16:41:10 +0000 (18:41 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Fri, 25 Jul 2008 13:41:23 +0000 (15:41 +0200)
commit95984f62c9b0bf6d89ef4f514b1afe73623481de
tree2c46b6e7ec4a56de8e65b194c828985af5fe4414
parentf9543d0ab6392a9a5bff0034622688dc10d9d225
firewire: fw-ohci: TSB43AB22/A dualbuffer workaround

Isochronous reception in dualbuffer mode is reportedly broken with
TI TSB43AB22A on x86-64.  Descriptor addresses above 2G have been
determined as the trigger:
https://bugzilla.redhat.com/show_bug.cgi?id=435550

Two fixes are possible:
  - pci_set_consistent_dma_mask(pdev, DMA_31BIT_MASK);
    at least when IR descriptors are allocated, or
  - simply don't use dualbuffer.
This fix implements the latter workaround.

But we keep using dualbuffer on x86-32 which won't give us highmen (and
thus physical addresses outside the 31bit range) in coherent DMA memory
allocations.  Right now we could for example also whitelist PPC32, but
DMA mapping implementation details are expected to change there.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jarod Wilson <jwilson@redhat.com>
drivers/firewire/fw-ohci.c
include/linux/pci_ids.h