Loading drivers/pci/controller/pci-loongson.c +13 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,19 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LOONGSON, DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LOONGSON, DEV_LS7A_HDMI, loongson_pci_pin_quirk); static void loongson_pci_msi_quirk(struct pci_dev *dev) { u16 val, class = dev->class >> 8; if (class != PCI_CLASS_BRIDGE_HOST) return; pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &val); val |= PCI_MSI_FLAGS_ENABLE; pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, val); } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LOONGSON, DEV_LS7A_PCIE_PORT5, loongson_pci_msi_quirk); static struct loongson_pci *pci_bus_to_loongson_pci(struct pci_bus *bus) { struct pci_config_window *cfg; Loading Loading
drivers/pci/controller/pci-loongson.c +13 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,19 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LOONGSON, DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LOONGSON, DEV_LS7A_HDMI, loongson_pci_pin_quirk); static void loongson_pci_msi_quirk(struct pci_dev *dev) { u16 val, class = dev->class >> 8; if (class != PCI_CLASS_BRIDGE_HOST) return; pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &val); val |= PCI_MSI_FLAGS_ENABLE; pci_write_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, val); } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LOONGSON, DEV_LS7A_PCIE_PORT5, loongson_pci_msi_quirk); static struct loongson_pci *pci_bus_to_loongson_pci(struct pci_bus *bus) { struct pci_config_window *cfg; Loading