diff options
-rw-r--r-- | arch/x86/pci/legacy.c | 1 | ||||
-rw-r--r-- | drivers/edac/i7core_edac.c | 17 | ||||
-rw-r--r-- | include/linux/pci.h | 1 | ||||
-rw-r--r-- | include/linux/pci_ids.h | 1 |
4 files changed, 16 insertions, 4 deletions
diff --git a/arch/x86/pci/legacy.c b/arch/x86/pci/legacy.c index c734c277b116..d6cc2eddf339 100644 --- a/arch/x86/pci/legacy.c +++ b/arch/x86/pci/legacy.c | |||
@@ -57,6 +57,7 @@ void pcibios_scan_specific_bus(int busn) | |||
57 | } | 57 | } |
58 | } | 58 | } |
59 | } | 59 | } |
60 | EXPORT_SYMBOL_GPL(pcibios_scan_specific_bus); | ||
60 | 61 | ||
61 | int __init pci_subsys_init(void) | 62 | int __init pci_subsys_init(void) |
62 | { | 63 | { |
diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c index 26cd5c924d56..eec0c13c0205 100644 --- a/drivers/edac/i7core_edac.c +++ b/drivers/edac/i7core_edac.c | |||
@@ -221,15 +221,15 @@ struct i7core_dev_info { | |||
221 | .dev_id = (device_id) | 221 | .dev_id = (device_id) |
222 | 222 | ||
223 | struct pci_id_descr pci_devs[] = { | 223 | struct pci_id_descr pci_devs[] = { |
224 | /* Generic Non-core registers */ | ||
225 | { PCI_DESCR(0, 0, PCI_DEVICE_ID_INTEL_I7_NOCORE) }, | ||
226 | |||
224 | /* Memory controller */ | 227 | /* Memory controller */ |
225 | { PCI_DESCR(3, 0, PCI_DEVICE_ID_INTEL_I7_MCR) }, | 228 | { PCI_DESCR(3, 0, PCI_DEVICE_ID_INTEL_I7_MCR) }, |
226 | { PCI_DESCR(3, 1, PCI_DEVICE_ID_INTEL_I7_MC_TAD) }, | 229 | { PCI_DESCR(3, 1, PCI_DEVICE_ID_INTEL_I7_MC_TAD) }, |
227 | { PCI_DESCR(3, 2, PCI_DEVICE_ID_INTEL_I7_MC_RAS) }, /* if RDIMM is supported */ | 230 | { PCI_DESCR(3, 2, PCI_DEVICE_ID_INTEL_I7_MC_RAS) }, /* if RDIMM is supported */ |
228 | { PCI_DESCR(3, 4, PCI_DEVICE_ID_INTEL_I7_MC_TEST) }, | 231 | { PCI_DESCR(3, 4, PCI_DEVICE_ID_INTEL_I7_MC_TEST) }, |
229 | 232 | ||
230 | /* Generic Non-core registers */ | ||
231 | { PCI_DESCR(0, 0, PCI_DEVICE_ID_INTEL_I7_NOCORE) }, | ||
232 | |||
233 | /* Channel 0 */ | 233 | /* Channel 0 */ |
234 | { PCI_DESCR(4, 0, PCI_DEVICE_ID_INTEL_I7_MC_CH0_CTRL) }, | 234 | { PCI_DESCR(4, 0, PCI_DEVICE_ID_INTEL_I7_MC_CH0_CTRL) }, |
235 | { PCI_DESCR(4, 1, PCI_DEVICE_ID_INTEL_I7_MC_CH0_ADDR) }, | 235 | { PCI_DESCR(4, 1, PCI_DEVICE_ID_INTEL_I7_MC_CH0_ADDR) }, |
@@ -255,7 +255,7 @@ struct pci_id_descr pci_devs[] = { | |||
255 | * This should match the first device at pci_devs table | 255 | * This should match the first device at pci_devs table |
256 | */ | 256 | */ |
257 | static const struct pci_device_id i7core_pci_tbl[] __devinitdata = { | 257 | static const struct pci_device_id i7core_pci_tbl[] __devinitdata = { |
258 | {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_I7_MCR)}, | 258 | {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_X58_HUB_MGMT)}, |
259 | {0,} /* 0 terminated list. */ | 259 | {0,} /* 0 terminated list. */ |
260 | }; | 260 | }; |
261 | 261 | ||
@@ -1069,6 +1069,15 @@ static int i7core_get_devices(void) | |||
1069 | for (i = 0; i < N_DEVS; i++) { | 1069 | for (i = 0; i < N_DEVS; i++) { |
1070 | pdev = pci_get_device(PCI_VENDOR_ID_INTEL, | 1070 | pdev = pci_get_device(PCI_VENDOR_ID_INTEL, |
1071 | pci_devs[i].dev_id, NULL); | 1071 | pci_devs[i].dev_id, NULL); |
1072 | |||
1073 | if (!pdev && !i) { | ||
1074 | pcibios_scan_specific_bus(254); | ||
1075 | pcibios_scan_specific_bus(255); | ||
1076 | |||
1077 | pdev = pci_get_device(PCI_VENDOR_ID_INTEL, | ||
1078 | pci_devs[i].dev_id, NULL); | ||
1079 | } | ||
1080 | |||
1072 | if (likely(pdev)) | 1081 | if (likely(pdev)) |
1073 | pci_devs[i].pdev = pdev; | 1082 | pci_devs[i].pdev = pdev; |
1074 | else { | 1083 | else { |
diff --git a/include/linux/pci.h b/include/linux/pci.h index a788fa12ff31..5e2c7e15187d 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -621,6 +621,7 @@ void pci_fixup_cardbus(struct pci_bus *); | |||
621 | 621 | ||
622 | /* Generic PCI functions used internally */ | 622 | /* Generic PCI functions used internally */ |
623 | 623 | ||
624 | void pcibios_scan_specific_bus(int busn); | ||
624 | extern struct pci_bus *pci_find_bus(int domain, int busnr); | 625 | extern struct pci_bus *pci_find_bus(int domain, int busnr); |
625 | void pci_bus_add_devices(const struct pci_bus *bus); | 626 | void pci_bus_add_devices(const struct pci_bus *bus); |
626 | struct pci_bus *pci_scan_bus_parented(struct device *parent, int bus, | 627 | struct pci_bus *pci_scan_bus_parented(struct device *parent, int bus, |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 9d5bfe86ba73..12c3da6ef14d 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -2554,6 +2554,7 @@ | |||
2554 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG5 0x342a | 2554 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG5 0x342a |
2555 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG6 0x342b | 2555 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG6 0x342b |
2556 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG7 0x342c | 2556 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG7 0x342c |
2557 | #define PCI_DEVICE_ID_INTEL_X58_HUB_MGMT 0x342e | ||
2557 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG0 0x3430 | 2558 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG0 0x3430 |
2558 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG1 0x3431 | 2559 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG1 0x3431 |
2559 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG2 0x3432 | 2560 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG2 0x3432 |