Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'pci/iommu'

- Add PCI_BRIDGE_NO_ALIAS quirk for ASPEED AST1150, where VGA and USB are
behind a PCIe-to-PCI bridge and share the same StreamID (Nirmoy Das)

* pci/iommu:
PCI: Add PCI_BRIDGE_NO_ALIAS quirk for ASPEED AST1150
PCI: Add ASPEED vendor ID to pci_ids.h

+19 -1
+10
drivers/pci/quirks.c
··· 4464 4464 quirk_bridge_cavm_thrx2_pcie_root); 4465 4465 4466 4466 /* 4467 + * AST1150 doesn't use a real PCI bus and always forwards the requester ID 4468 + * from downstream devices. 4469 + */ 4470 + static void quirk_aspeed_pci_bridge_no_alias(struct pci_dev *pdev) 4471 + { 4472 + pdev->dev_flags |= PCI_DEV_FLAGS_PCI_BRIDGE_NO_ALIAS; 4473 + } 4474 + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ASPEED, 0x1150, quirk_aspeed_pci_bridge_no_alias); 4475 + 4476 + /* 4467 4477 * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) 4468 4478 * class code. Fix it. 4469 4479 */
+2
drivers/pci/search.c
··· 86 86 case PCI_EXP_TYPE_DOWNSTREAM: 87 87 continue; 88 88 case PCI_EXP_TYPE_PCI_BRIDGE: 89 + if (tmp->dev_flags & PCI_DEV_FLAGS_PCI_BRIDGE_NO_ALIAS) 90 + continue; 89 91 ret = fn(tmp, 90 92 PCI_DEVID(tmp->subordinate->number, 91 93 PCI_DEVFN(0, 0)), data);
-1
drivers/usb/host/ehci-pci.c
··· 21 21 /* defined here to avoid adding to pci_ids.h for single instance use */ 22 22 #define PCI_DEVICE_ID_INTEL_CE4100_USB 0x2e70 23 23 24 - #define PCI_VENDOR_ID_ASPEED 0x1a03 25 24 #define PCI_DEVICE_ID_ASPEED_EHCI 0x2603 26 25 27 26 /*-------------------------------------------------------------------------*/
+5
include/linux/pci.h
··· 248 248 PCI_DEV_FLAGS_HAS_MSI_MASKING = (__force pci_dev_flags_t) (1 << 12), 249 249 /* Device requires write to PCI_MSIX_ENTRY_DATA before any MSIX reads */ 250 250 PCI_DEV_FLAGS_MSIX_TOUCH_ENTRY_DATA_FIRST = (__force pci_dev_flags_t) (1 << 13), 251 + /* 252 + * PCIe to PCI bridge does not create RID aliases because the bridge is 253 + * integrated with the downstream devices and doesn't use real PCI. 254 + */ 255 + PCI_DEV_FLAGS_PCI_BRIDGE_NO_ALIAS = (__force pci_dev_flags_t) (1 << 14), 251 256 }; 252 257 253 258 enum pci_irq_reroute_variant {
+2
include/linux/pci_ids.h
··· 2583 2583 #define PCI_DEVICE_ID_NETRONOME_NFP3800_VF 0x3803 2584 2584 #define PCI_DEVICE_ID_NETRONOME_NFP6000_VF 0x6003 2585 2585 2586 + #define PCI_VENDOR_ID_ASPEED 0x1a03 2587 + 2586 2588 #define PCI_VENDOR_ID_QMI 0x1a32 2587 2589 2588 2590 #define PCI_VENDOR_ID_AZWAVE 0x1a3b