Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1f56f4a2 authored by Gabe Black's avatar Gabe Black Committed by Jesse Barnes
Browse files

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: default avatarGabe Black <gabe.black@ni.com>
Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
parent e13cdbd7
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -670,6 +670,25 @@ static void __devinit quirk_vt8235_acpi(struct pci_dev *dev)
}
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA,	PCI_DEVICE_ID_VIA_8235,	quirk_vt8235_acpi);

/*
 * TI XIO2000a PCIe-PCI Bridge erroneously reports it supports fast back-to-back:
 *	Disable fast back-to-back on the secondary bus segment
 */
static void __devinit quirk_xio2000a(struct pci_dev *dev)
{
	struct pci_dev *pdev;
	u16 command;

	dev_warn(&dev->dev, "TI XIO2000a quirk detected; "
		"secondary bus fast back-to-back transfers disabled\n");
	list_for_each_entry(pdev, &dev->subordinate->devices, bus_list) {
		pci_read_config_word(pdev, PCI_COMMAND, &command);
		if (command & PCI_COMMAND_FAST_BACK)
			pci_write_config_word(pdev, PCI_COMMAND, command & ~PCI_COMMAND_FAST_BACK);
	}
}
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_XIO2000A,
			quirk_xio2000a);

#ifdef CONFIG_X86_IO_APIC 

+1 −0
Original line number Diff line number Diff line
@@ -776,6 +776,7 @@
#define PCI_DEVICE_ID_TI_X515		0x8036
#define PCI_DEVICE_ID_TI_XX12		0x8039
#define PCI_DEVICE_ID_TI_XX12_FM	0x803b
#define PCI_DEVICE_ID_TI_XIO2000A	0x8231
#define PCI_DEVICE_ID_TI_1130		0xac12
#define PCI_DEVICE_ID_TI_1031		0xac13
#define PCI_DEVICE_ID_TI_1131		0xac15