diff options
Diffstat (limited to 'drivers/pci/quirks.c')
-rw-r--r-- | drivers/pci/quirks.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 085fb787aa9e..6967c6b4cf6b 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -304,7 +304,7 @@ static void quirk_extend_bar_to_page(struct pci_dev *dev) | |||
304 | { | 304 | { |
305 | int i; | 305 | int i; |
306 | 306 | ||
307 | for (i = 0; i < PCI_STD_RESOURCE_END; i++) { | 307 | for (i = 0; i <= PCI_STD_RESOURCE_END; i++) { |
308 | struct resource *r = &dev->resource[i]; | 308 | struct resource *r = &dev->resource[i]; |
309 | 309 | ||
310 | if (r->flags & IORESOURCE_MEM && resource_size(r) < PAGE_SIZE) { | 310 | if (r->flags & IORESOURCE_MEM && resource_size(r) < PAGE_SIZE) { |
@@ -1684,6 +1684,19 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2609, quirk_intel_pcie_pm); | |||
1684 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260a, quirk_intel_pcie_pm); | 1684 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260a, quirk_intel_pcie_pm); |
1685 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260b, quirk_intel_pcie_pm); | 1685 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260b, quirk_intel_pcie_pm); |
1686 | 1686 | ||
1687 | static void quirk_radeon_pm(struct pci_dev *dev) | ||
1688 | { | ||
1689 | if (dev->subsystem_vendor == PCI_VENDOR_ID_APPLE && | ||
1690 | dev->subsystem_device == 0x00e2) { | ||
1691 | if (dev->d3_delay < 20) { | ||
1692 | dev->d3_delay = 20; | ||
1693 | dev_info(&dev->dev, "extending delay after power-on from D3 to %d msec\n", | ||
1694 | dev->d3_delay); | ||
1695 | } | ||
1696 | } | ||
1697 | } | ||
1698 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6741, quirk_radeon_pm); | ||
1699 | |||
1687 | #ifdef CONFIG_X86_IO_APIC | 1700 | #ifdef CONFIG_X86_IO_APIC |
1688 | static int dmi_disable_ioapicreroute(const struct dmi_system_id *d) | 1701 | static int dmi_disable_ioapicreroute(const struct dmi_system_id *d) |
1689 | { | 1702 | { |
@@ -3236,6 +3249,10 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1588, | |||
3236 | quirk_broken_intx_masking); | 3249 | quirk_broken_intx_masking); |
3237 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1589, | 3250 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1589, |
3238 | quirk_broken_intx_masking); | 3251 | quirk_broken_intx_masking); |
3252 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x158a, | ||
3253 | quirk_broken_intx_masking); | ||
3254 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x158b, | ||
3255 | quirk_broken_intx_masking); | ||
3239 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x37d0, | 3256 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x37d0, |
3240 | quirk_broken_intx_masking); | 3257 | quirk_broken_intx_masking); |
3241 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x37d1, | 3258 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x37d1, |