]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/pci/quirks.c
Merge tag 'for-linus-5.6-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux.git] / drivers / pci / quirks.c
index 45aaa8ee1a4ebb9e4fe500866c1218883360d31b..29f473ebf20f0b20e9df8e9f0f6d889d361cb887 100644 (file)
@@ -1571,7 +1571,7 @@ static void asus_hides_smbus_lpc_ich6_suspend(struct pci_dev *dev)
 
        pci_read_config_dword(dev, 0xF0, &rcba);
        /* use bits 31:14, 16 kB aligned */
-       asus_rcba_base = ioremap_nocache(rcba & 0xFFFFC000, 0x4000);
+       asus_rcba_base = ioremap(rcba & 0xFFFFC000, 0x4000);
        if (asus_rcba_base == NULL)
                return;
 }
@@ -4774,7 +4774,7 @@ static int pci_quirk_enable_intel_lpc_acs(struct pci_dev *dev)
        if (!(rcba & INTEL_LPC_RCBA_ENABLE))
                return -EINVAL;
 
-       rcba_mem = ioremap_nocache(rcba & INTEL_LPC_RCBA_MASK,
+       rcba_mem = ioremap(rcba & INTEL_LPC_RCBA_MASK,
                                   PAGE_ALIGN(INTEL_UPDCR_REG));
        if (!rcba_mem)
                return -ENOMEM;
@@ -5064,18 +5064,25 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0422, quirk_no_ext_tags);
 
 #ifdef CONFIG_PCI_ATS
 /*
- * Some devices have a broken ATS implementation causing IOMMU stalls.
- * Don't use ATS for those devices.
+ * Some devices require additional driver setup to enable ATS.  Don't use
+ * ATS for those devices as ATS will be enabled before the driver has had a
+ * chance to load and configure the device.
  */
-static void quirk_no_ats(struct pci_dev *pdev)
+static void quirk_amd_harvest_no_ats(struct pci_dev *pdev)
 {
-       pci_info(pdev, "disabling ATS (broken on this device)\n");
+       if (pdev->device == 0x7340 && pdev->revision != 0xc5)
+               return;
+
+       pci_info(pdev, "disabling ATS\n");
        pdev->ats_cap = 0;
 }
 
 /* AMD Stoney platform GPU */
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x98e4, quirk_no_ats);
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6900, quirk_no_ats);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x98e4, quirk_amd_harvest_no_ats);
+/* AMD Iceland dGPU */
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6900, quirk_amd_harvest_no_ats);
+/* AMD Navi14 dGPU */
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x7340, quirk_amd_harvest_no_ats);
 #endif /* CONFIG_PCI_ATS */
 
 /* Freescale PCIe doesn't support MSI in RC mode */