FireWire fixes post v3.3-rc1
Linus,
please pull from the tag "firewire-fixes" at
git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394.git firewire-fixes
to receive workarounds table entries for hardware bugs in
- FireWire part of Sound Blaster Audigy cards,
- Ricoh PCIe 1394 controllers.
Without these, several protocols, e.g. AV/C, do not work on the Audigy, and the Ricoh PCIe controllers wouldn't work at all. This does not concern the older Ricoh PCI controllers.
Clemens Ladisch (1):
firewire: ohci: add reset packet quirk for SB Audigy
Stefan Richter (1):
firewire: ohci: disable MSI on Ricoh controllers
drivers/firewire/ohci.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
commit 320cfa6ce0b3dc794fedfa4bae54c0f65077234d
Author: Stefan Richter <[email protected]> Date: Sun Jan 29 12:41:15 2012 +0100
firewire: ohci: disable MSI on Ricoh controllers
The PCIe device
FireWire (IEEE 1394) [0c00]: Ricoh Co Ltd FireWire Host Controller [1180:e832] (prog-if 10 [OHCI])
is unable to access attached FireWire devices when MSI is enabled but works if MSI is disabled.
http://www.mail-archive.com/[email protected]/msg28251.html
Hence add the "disable MSI" quirks flag for this device, or in fact for safety and simplicity for all current (R5U230, R5U231, R5U240) and future Ricoh PCIe 1394 controllers.
drivers/firewire/ohci.c +1 -1
@@ -303,7 +303,7 @@ static const struct { QUIRK_NO_MSI}, {PCI_VENDOR_ID_RICOH ,PCI_ANY_ID ,PCI_ANY_ID , - QUIRK_CYCLE_TIMER}, + QUIRK_CYCLE_TIMER | QUIRK_NO_MSI}, {PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_TSB12LV22, PCI_ANY_ID, QUIRK_CYCLE_TIMER | QUIRK_RESET_PACKET | QUIRK_NO_1394A},
commit d1bb399ad03c11e792f6dea198d3b1e23061f094
Author: Clemens Ladisch <[email protected]> Date: Thu Jan 26 22:05:58 2012 +0100
firewire: ohci: add reset packet quirk for SB Audigy
The Audigy's SB1394 controller is actually from Texas Instruments and has the same bus reset packet generation bug, so it needs the same quirk entry.
drivers/firewire/ohci.c +4 -0
@@ -263,6 +263,7 @@ static inline struct fw_ohci *fw_ohci(struct fw_card *card)static char ohci_driver_name[] =KBUILD_MODNAME ;#define PCI_DEVICE_ID_AGERE_FW643 0x5901 +#define PCI_DEVICE_ID_CREATIVE_SB1394 0x4001#define PCI_DEVICE_ID_JMICRON_JMB38X_FW 0x2380#define PCI_DEVICE_ID_TI_TSB12LV22 0x8009#define PCI_DEVICE_ID_TI_TSB12LV26 0x8020
@@ -289,6 +290,9 @@ static const struct { {PCI_VENDOR_ID_ATT ,PCI_DEVICE_ID_AGERE_FW643 ,6 , QUIRK_NO_MSI}, + {PCI_VENDOR_ID_CREATIVE, PCI_DEVICE_ID_CREATIVE_SB1394, PCI_ANY_ID, + QUIRK_RESET_PACKET}, + {PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB38X_FW, PCI_ANY_ID, QUIRK_NO_MSI},
Signature · 3 lines
Stefan Richter -=====-===-- ---= ===== http://arcgraph.de/sr/