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 | |
| 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')
| -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 | ||
