diff options
author | Gabe Black <gabe.black@ni.com> | 2009-10-06 10:19:45 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-10-07 12:28:17 -0400 |
commit | 1f56f4a2b4d12c1c348cab23024024396ec7cddc (patch) | |
tree | 0b7f00bebd3e613d929791549d44689e9aa0387b /drivers/pci/quirks.c | |
parent | e13cdbd71fe12c4e191b737c4a3dbfdb4b2de03b (diff) |
PCI quirk: TI XIO200a erroneously reports support for fast b2b transfers
This quirk will disable fast back to back transfer on the secondary bus
segment of the TI Bridge.
Signed-off-by: Gabe Black <gabe.black@ni.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci/quirks.c')
-rw-r--r-- | drivers/pci/quirks.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 6099facecd79..efa6534a6593 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -670,6 +670,25 @@ static void __devinit quirk_vt8235_acpi(struct pci_dev *dev) | |||
670 | } | 670 | } |
671 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8235, quirk_vt8235_acpi); | 671 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8235, quirk_vt8235_acpi); |
672 | 672 | ||
673 | /* | ||
674 | * TI XIO2000a PCIe-PCI Bridge erroneously reports it supports fast back-to-back: | ||
675 | * Disable fast back-to-back on the secondary bus segment | ||
676 | */ | ||
677 | static void __devinit quirk_xio2000a(struct pci_dev *dev) | ||
678 | { | ||
679 | struct pci_dev *pdev; | ||
680 | u16 command; | ||
681 | |||
682 | dev_warn(&dev->dev, "TI XIO2000a quirk detected; " | ||
683 | "secondary bus fast back-to-back transfers disabled\n"); | ||
684 | list_for_each_entry(pdev, &dev->subordinate->devices, bus_list) { | ||
685 | pci_read_config_word(pdev, PCI_COMMAND, &command); | ||
686 | if (command & PCI_COMMAND_FAST_BACK) | ||
687 | pci_write_config_word(pdev, PCI_COMMAND, command & ~PCI_COMMAND_FAST_BACK); | ||
688 | } | ||
689 | } | ||
690 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_XIO2000A, | ||
691 | quirk_xio2000a); | ||
673 | 692 | ||
674 | #ifdef CONFIG_X86_IO_APIC | 693 | #ifdef CONFIG_X86_IO_APIC |
675 | 694 | ||