diff options
-rw-r--r-- | drivers/pci/Makefile | 4 | ||||
-rw-r--r-- | drivers/pci/pci.c | 7 | ||||
-rw-r--r-- | drivers/pci/pci.h | 7 | ||||
-rw-r--r-- | drivers/pci/quirks.c | 14 | ||||
-rw-r--r-- | include/linux/pci.h | 6 |
5 files changed, 23 insertions, 15 deletions
diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile index 4df48d58eaa6..adb74253a996 100644 --- a/drivers/pci/Makefile +++ b/drivers/pci/Makefile | |||
@@ -2,12 +2,14 @@ | |||
2 | # Makefile for the PCI bus specific drivers. | 2 | # Makefile for the PCI bus specific drivers. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y += access.o bus.o probe.o remove.o pci.o quirks.o \ | 5 | obj-y += access.o bus.o probe.o remove.o pci.o \ |
6 | pci-driver.o search.o pci-sysfs.o rom.o setup-res.o \ | 6 | pci-driver.o search.o pci-sysfs.o rom.o setup-res.o \ |
7 | irq.o | 7 | irq.o |
8 | obj-$(CONFIG_PROC_FS) += proc.o | 8 | obj-$(CONFIG_PROC_FS) += proc.o |
9 | obj-$(CONFIG_SYSFS) += slot.o | 9 | obj-$(CONFIG_SYSFS) += slot.o |
10 | 10 | ||
11 | obj-$(CONFIG_PCI_QUIRKS) += quirks.o | ||
12 | |||
11 | obj-$(CONFIG_PCI_LEGACY) += legacy.o | 13 | obj-$(CONFIG_PCI_LEGACY) += legacy.o |
12 | CFLAGS_legacy.o += -Wno-deprecated-declarations | 14 | CFLAGS_legacy.o += -Wno-deprecated-declarations |
13 | 15 | ||
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 315fea47e784..1f9be53c39ba 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c | |||
@@ -19,7 +19,6 @@ | |||
19 | #include <linux/pci-aspm.h> | 19 | #include <linux/pci-aspm.h> |
20 | #include <linux/pm_wakeup.h> | 20 | #include <linux/pm_wakeup.h> |
21 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
22 | #include <asm/dma.h> /* isa_dma_bridge_buggy */ | ||
23 | #include <linux/device.h> | 22 | #include <linux/device.h> |
24 | #include <asm/setup.h> | 23 | #include <asm/setup.h> |
25 | #include "pci.h" | 24 | #include "pci.h" |
@@ -29,6 +28,12 @@ const char *pci_power_names[] = { | |||
29 | }; | 28 | }; |
30 | EXPORT_SYMBOL_GPL(pci_power_names); | 29 | EXPORT_SYMBOL_GPL(pci_power_names); |
31 | 30 | ||
31 | int isa_dma_bridge_buggy; | ||
32 | EXPORT_SYMBOL(isa_dma_bridge_buggy); | ||
33 | |||
34 | int pci_pci_problems; | ||
35 | EXPORT_SYMBOL(pci_pci_problems); | ||
36 | |||
32 | unsigned int pci_pm_d3_delay; | 37 | unsigned int pci_pm_d3_delay; |
33 | 38 | ||
34 | static void pci_dev_d3_sleep(struct pci_dev *dev) | 39 | static void pci_dev_d3_sleep(struct pci_dev *dev) |
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index fbd0e3adbca3..5d169bc3ccd1 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h | |||
@@ -319,6 +319,13 @@ struct pci_dev_reset_methods { | |||
319 | int (*reset)(struct pci_dev *dev, int probe); | 319 | int (*reset)(struct pci_dev *dev, int probe); |
320 | }; | 320 | }; |
321 | 321 | ||
322 | #ifdef CONFIG_PCI_QUIRKS | ||
322 | extern int pci_dev_specific_reset(struct pci_dev *dev, int probe); | 323 | extern int pci_dev_specific_reset(struct pci_dev *dev, int probe); |
324 | #else | ||
325 | static inline int pci_dev_specific_reset(struct pci_dev *dev, int probe) | ||
326 | { | ||
327 | return -ENOTTY; | ||
328 | } | ||
329 | #endif | ||
323 | 330 | ||
324 | #endif /* DRIVERS_PCI_H */ | 331 | #endif /* DRIVERS_PCI_H */ |
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index d58b94030ef3..790eb69a4aa9 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -25,14 +25,9 @@ | |||
25 | #include <linux/dmi.h> | 25 | #include <linux/dmi.h> |
26 | #include <linux/pci-aspm.h> | 26 | #include <linux/pci-aspm.h> |
27 | #include <linux/ioport.h> | 27 | #include <linux/ioport.h> |
28 | #include <asm/dma.h> /* isa_dma_bridge_buggy */ | ||
28 | #include "pci.h" | 29 | #include "pci.h" |
29 | 30 | ||
30 | int isa_dma_bridge_buggy; | ||
31 | EXPORT_SYMBOL(isa_dma_bridge_buggy); | ||
32 | int pci_pci_problems; | ||
33 | EXPORT_SYMBOL(pci_pci_problems); | ||
34 | |||
35 | #ifdef CONFIG_PCI_QUIRKS | ||
36 | /* | 31 | /* |
37 | * This quirk function disables memory decoding and releases memory resources | 32 | * This quirk function disables memory decoding and releases memory resources |
38 | * of the device specified by kernel's boot parameter 'pci=resource_alignment='. | 33 | * of the device specified by kernel's boot parameter 'pci=resource_alignment='. |
@@ -2612,6 +2607,7 @@ void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev) | |||
2612 | } | 2607 | } |
2613 | pci_do_fixups(dev, start, end); | 2608 | pci_do_fixups(dev, start, end); |
2614 | } | 2609 | } |
2610 | EXPORT_SYMBOL(pci_fixup_device); | ||
2615 | 2611 | ||
2616 | static int __init pci_apply_final_quirks(void) | 2612 | static int __init pci_apply_final_quirks(void) |
2617 | { | 2613 | { |
@@ -2723,9 +2719,3 @@ int pci_dev_specific_reset(struct pci_dev *dev, int probe) | |||
2723 | 2719 | ||
2724 | return -ENOTTY; | 2720 | return -ENOTTY; |
2725 | } | 2721 | } |
2726 | |||
2727 | #else | ||
2728 | void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev) {} | ||
2729 | int pci_dev_specific_reset(struct pci_dev *dev, int probe) { return -ENOTTY; } | ||
2730 | #endif | ||
2731 | EXPORT_SYMBOL(pci_fixup_device); | ||
diff --git a/include/linux/pci.h b/include/linux/pci.h index 0c3a29444f89..16f48e7506ed 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -1271,8 +1271,12 @@ enum pci_fixup_pass { | |||
1271 | DECLARE_PCI_FIXUP_SECTION(.pci_fixup_suspend, \ | 1271 | DECLARE_PCI_FIXUP_SECTION(.pci_fixup_suspend, \ |
1272 | suspend##vendor##device##hook, vendor, device, hook) | 1272 | suspend##vendor##device##hook, vendor, device, hook) |
1273 | 1273 | ||
1274 | 1274 | #ifdef CONFIG_PCI_QUIRKS | |
1275 | void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev); | 1275 | void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev); |
1276 | #else | ||
1277 | static inline void pci_fixup_device(enum pci_fixup_pass pass, | ||
1278 | struct pci_dev *dev) {} | ||
1279 | #endif | ||
1276 | 1280 | ||
1277 | void __iomem *pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen); | 1281 | void __iomem *pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen); |
1278 | void pcim_iounmap(struct pci_dev *pdev, void __iomem *addr); | 1282 | void pcim_iounmap(struct pci_dev *pdev, void __iomem *addr); |