Messages in this thread | | | From | Jarod Wilson <> | Subject | Re: [PATCH update] firewire: fw-ohci: work around generation bug in TI controllers (fix AV/C and more) | Date | Mon, 14 Apr 2008 13:30:22 -0400 |
| |
On Saturday 12 April 2008 04:31:25 pm Stefan Richter wrote: > Unlike the ohci1394 driver, fw-ohci uses the selfIDGeneration field of > bus reset packets to determine the generation of incoming requests as > per OHCI 1.1 clause 8.4.2.3. This is more precise --- provided that the > controller inserts the correct generation. Texas Instruments chips > often don't. > > This prevented the transmission of response packets, which for example > broke AV/C transactions as used when communicating with miniDV cameras > and any other AV/C devices. > > There is apparently no way to detect and adjust incorrect generations. > Therefore we ignore the generation of bus reset packets from TI chips > and use the generation of the self ID buffer instead. Alas this is > received at a slightly wrong time. In rare cases, this could cause us > to not respond to legitimate requests or to respond to expired requests. > (The latter is less likely because the bus reset packet AR event is > typically handled before the self ID complete event.) > > Bug reported by Mladen Kuntner, who was extraordinarily patient while > dealing with the driver maintainers. > https://bugzilla.redhat.com/show_bug.cgi?id=243081 > > Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> > --- > > update: use a quirk flag for simpler code
The work-around looks good to me, just one question.
> @@ -2360,6 +2369,8 @@ pci_probe(struct pci_dev *dev, const str > ohci->old_uninorth = dev->vendor == PCI_VENDOR_ID_APPLE && > dev->device == PCI_DEVICE_ID_APPLE_UNI_N_FW; > #endif > + ohci->bus_reset_packet_quirk = dev->vendor == PCI_VENDOR_ID_TI; > +
I have a few cards with PCI_VENDOR_ID_CREATIVE with a TI TSB41AB2 chip on 'em (SoundBlaster Audigy w/FireWire port). I've not had any issues on any of the cards I've got, but do we want to add them to the work-around list just to be safe?
-- Jarod Wilson jwilson@redhat.com
| |