diff options
Diffstat (limited to 'drivers/pci/quirks.c')
| -rw-r--r-- | drivers/pci/quirks.c | 26 | 
1 files changed, 24 insertions, 2 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index b4cb658cce2b..d2dd6a6cda60 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -980,8 +980,8 @@ static void quirk_via_ioapic(struct pci_dev *dev)  	else  		tmp = 0x1f; /* all known bits (4-0) routed to external APIC */ -	pci_info(dev, "%sbling VIA external APIC routing\n", -	       tmp == 0 ? "Disa" : "Ena"); +	pci_info(dev, "%s VIA external APIC routing\n", +		 tmp ? "Enabling" : "Disabling");  	/* Offset 0x58: External APIC IRQ output control */  	pci_write_config_byte(dev, 0x58, tmp); @@ -4103,6 +4103,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9120,  			 quirk_dma_func1_alias);  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9123,  			 quirk_dma_func1_alias); +/* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c136 */ +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9125, +			 quirk_dma_func1_alias);  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9128,  			 quirk_dma_func1_alias);  /* https://bugzilla.kernel.org/show_bug.cgi?id=42679#c14 */ @@ -5683,6 +5686,15 @@ SWITCHTEC_QUIRK(0x4268);  /* PAX 68XG4  */  SWITCHTEC_QUIRK(0x4252);  /* PAX 52XG4  */  SWITCHTEC_QUIRK(0x4236);  /* PAX 36XG4  */  SWITCHTEC_QUIRK(0x4228);  /* PAX 28XG4  */ +SWITCHTEC_QUIRK(0x4352);  /* PFXA 52XG4 */ +SWITCHTEC_QUIRK(0x4336);  /* PFXA 36XG4 */ +SWITCHTEC_QUIRK(0x4328);  /* PFXA 28XG4 */ +SWITCHTEC_QUIRK(0x4452);  /* PSXA 52XG4 */ +SWITCHTEC_QUIRK(0x4436);  /* PSXA 36XG4 */ +SWITCHTEC_QUIRK(0x4428);  /* PSXA 28XG4 */ +SWITCHTEC_QUIRK(0x4552);  /* PAXA 52XG4 */ +SWITCHTEC_QUIRK(0x4536);  /* PAXA 36XG4 */ +SWITCHTEC_QUIRK(0x4528);  /* PAXA 28XG4 */  /*   * The PLX NTB uses devfn proxy IDs to move TLPs between NT endpoints. @@ -5857,3 +5869,13 @@ static void nvidia_ion_ahci_fixup(struct pci_dev *pdev)  	pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING;  }  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup); + +static void rom_bar_overlap_defect(struct pci_dev *dev) +{ +	pci_info(dev, "working around ROM BAR overlap defect\n"); +	dev->rom_bar_overlap = 1; +} +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1533, rom_bar_overlap_defect); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1536, rom_bar_overlap_defect); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1537, rom_bar_overlap_defect); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1538, rom_bar_overlap_defect);  |