diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2006-03-20 12:58:02 -0500 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2006-03-20 12:58:02 -0500 |
commit | 1a02e59a2970f9ed28ab51d3b08624b79e54d848 (patch) | |
tree | 470cce472be3b08c160e0c569648e7228651b12a /arch/powerpc/platforms | |
parent | ebcff3c773b42bce6182ec16485abca4e53fba97 (diff) | |
parent | 2c276603c3e5ebf38155a9d1fbbda656d52d138e (diff) |
Merge branch 'master'
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r-- | arch/powerpc/platforms/iseries/lpevents.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/iseries/setup.c | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/maple/pci.c | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/feature.c | 19 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/pfunc_base.c | 5 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/pfunc_core.c | 6 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/setup.c | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/smp.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/Kconfig | 9 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/eeh.c | 14 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/eeh_driver.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/pci_dlpar.c | 64 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/smp.c | 2 |
13 files changed, 91 insertions, 43 deletions
diff --git a/arch/powerpc/platforms/iseries/lpevents.c b/arch/powerpc/platforms/iseries/lpevents.c index 0b885300d1d1..8ca7b9396355 100644 --- a/arch/powerpc/platforms/iseries/lpevents.c +++ b/arch/powerpc/platforms/iseries/lpevents.c | |||
@@ -184,6 +184,8 @@ void setup_hvlpevent_queue(void) | |||
184 | { | 184 | { |
185 | void *eventStack; | 185 | void *eventStack; |
186 | 186 | ||
187 | spin_lock_init(&hvlpevent_queue.lock); | ||
188 | |||
187 | /* Allocate a page for the Event Stack. */ | 189 | /* Allocate a page for the Event Stack. */ |
188 | eventStack = alloc_bootmem_pages(LpEventStackSize); | 190 | eventStack = alloc_bootmem_pages(LpEventStackSize); |
189 | memset(eventStack, 0, LpEventStackSize); | 191 | memset(eventStack, 0, LpEventStackSize); |
diff --git a/arch/powerpc/platforms/iseries/setup.c b/arch/powerpc/platforms/iseries/setup.c index 3f8790146b00..3ecc4a652d82 100644 --- a/arch/powerpc/platforms/iseries/setup.c +++ b/arch/powerpc/platforms/iseries/setup.c | |||
@@ -648,6 +648,7 @@ static void yield_shared_processor(void) | |||
648 | * here and let the timer_interrupt code sort out the actual time. | 648 | * here and let the timer_interrupt code sort out the actual time. |
649 | */ | 649 | */ |
650 | get_lppaca()->int_dword.fields.decr_int = 1; | 650 | get_lppaca()->int_dword.fields.decr_int = 1; |
651 | ppc64_runlatch_on(); | ||
651 | process_iSeries_events(); | 652 | process_iSeries_events(); |
652 | } | 653 | } |
653 | 654 | ||
diff --git a/arch/powerpc/platforms/maple/pci.c b/arch/powerpc/platforms/maple/pci.c index 7d4099a34f92..85d6c93659cc 100644 --- a/arch/powerpc/platforms/maple/pci.c +++ b/arch/powerpc/platforms/maple/pci.c | |||
@@ -435,8 +435,8 @@ void __init maple_pci_init(void) | |||
435 | PCI_DN(np)->busno = 0xf0; | 435 | PCI_DN(np)->busno = 0xf0; |
436 | } | 436 | } |
437 | 437 | ||
438 | /* Tell pci.c to use the common resource allocation mecanism */ | 438 | /* Tell pci.c to not change any resource allocations. */ |
439 | pci_probe_only = 0; | 439 | pci_probe_only = 1; |
440 | 440 | ||
441 | /* Allow all IO */ | 441 | /* Allow all IO */ |
442 | io_page_mask = -1; | 442 | io_page_mask = -1; |
diff --git a/arch/powerpc/platforms/powermac/feature.c b/arch/powerpc/platforms/powermac/feature.c index 50ed8890dd33..e49eddd5042d 100644 --- a/arch/powerpc/platforms/powermac/feature.c +++ b/arch/powerpc/platforms/powermac/feature.c | |||
@@ -1644,10 +1644,10 @@ static void intrepid_shutdown(struct macio_chip *macio, int sleep_mode) | |||
1644 | KL0_SCC_CELL_ENABLE); | 1644 | KL0_SCC_CELL_ENABLE); |
1645 | 1645 | ||
1646 | MACIO_BIC(KEYLARGO_FCR1, | 1646 | MACIO_BIC(KEYLARGO_FCR1, |
1647 | /*KL1_USB2_CELL_ENABLE |*/ | ||
1648 | KL1_I2S0_CELL_ENABLE | KL1_I2S0_CLK_ENABLE_BIT | | 1647 | KL1_I2S0_CELL_ENABLE | KL1_I2S0_CLK_ENABLE_BIT | |
1649 | KL1_I2S0_ENABLE | KL1_I2S1_CELL_ENABLE | | 1648 | KL1_I2S0_ENABLE | KL1_I2S1_CELL_ENABLE | |
1650 | KL1_I2S1_CLK_ENABLE_BIT | KL1_I2S1_ENABLE); | 1649 | KL1_I2S1_CLK_ENABLE_BIT | KL1_I2S1_ENABLE | |
1650 | KL1_EIDE0_ENABLE); | ||
1651 | if (pmac_mb.board_flags & PMAC_MB_MOBILE) | 1651 | if (pmac_mb.board_flags & PMAC_MB_MOBILE) |
1652 | MACIO_BIC(KEYLARGO_FCR1, KL1_UIDE_RESET_N); | 1652 | MACIO_BIC(KEYLARGO_FCR1, KL1_UIDE_RESET_N); |
1653 | 1653 | ||
@@ -2181,7 +2181,7 @@ static struct pmac_mb_def pmac_mb_defs[] = { | |||
2181 | }, | 2181 | }, |
2182 | { "PowerMac10,1", "Mac mini", | 2182 | { "PowerMac10,1", "Mac mini", |
2183 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, | 2183 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, |
2184 | PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER, | 2184 | PMAC_MB_MAY_SLEEP, |
2185 | }, | 2185 | }, |
2186 | { "iMac,1", "iMac (first generation)", | 2186 | { "iMac,1", "iMac (first generation)", |
2187 | PMAC_TYPE_ORIG_IMAC, paddington_features, | 2187 | PMAC_TYPE_ORIG_IMAC, paddington_features, |
@@ -2293,11 +2293,11 @@ static struct pmac_mb_def pmac_mb_defs[] = { | |||
2293 | }, | 2293 | }, |
2294 | { "PowerBook5,8", "PowerBook G4 15\"", | 2294 | { "PowerBook5,8", "PowerBook G4 15\"", |
2295 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, | 2295 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, |
2296 | PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, | 2296 | PMAC_MB_MAY_SLEEP | PMAC_MB_MOBILE, |
2297 | }, | 2297 | }, |
2298 | { "PowerBook5,9", "PowerBook G4 17\"", | 2298 | { "PowerBook5,9", "PowerBook G4 17\"", |
2299 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, | 2299 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, |
2300 | PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, | 2300 | PMAC_MB_MAY_SLEEP | PMAC_MB_MOBILE, |
2301 | }, | 2301 | }, |
2302 | { "PowerBook6,1", "PowerBook G4 12\"", | 2302 | { "PowerBook6,1", "PowerBook G4 12\"", |
2303 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, | 2303 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, |
@@ -2489,9 +2489,7 @@ found: | |||
2489 | pmac_mb.model_id = PMAC_TYPE_COMET; | 2489 | pmac_mb.model_id = PMAC_TYPE_COMET; |
2490 | iounmap(mach_id_ptr); | 2490 | iounmap(mach_id_ptr); |
2491 | } | 2491 | } |
2492 | #endif /* CONFIG_POWER4 */ | ||
2493 | 2492 | ||
2494 | #ifdef CONFIG_6xx | ||
2495 | /* Set default value of powersave_nap on machines that support it. | 2493 | /* Set default value of powersave_nap on machines that support it. |
2496 | * It appears that uninorth rev 3 has a problem with it, we don't | 2494 | * It appears that uninorth rev 3 has a problem with it, we don't |
2497 | * enable it on those. In theory, the flush-on-lock property is | 2495 | * enable it on those. In theory, the flush-on-lock property is |
@@ -2520,10 +2518,11 @@ found: | |||
2520 | * NAP mode | 2518 | * NAP mode |
2521 | */ | 2519 | */ |
2522 | powersave_lowspeed = 1; | 2520 | powersave_lowspeed = 1; |
2523 | #endif /* CONFIG_6xx */ | 2521 | |
2524 | #ifdef CONFIG_POWER4 | 2522 | #else /* CONFIG_POWER4 */ |
2525 | powersave_nap = 1; | 2523 | powersave_nap = 1; |
2526 | #endif | 2524 | #endif /* CONFIG_POWER4 */ |
2525 | |||
2527 | /* Check for "mobile" machine */ | 2526 | /* Check for "mobile" machine */ |
2528 | if (model && (strncmp(model, "PowerBook", 9) == 0 | 2527 | if (model && (strncmp(model, "PowerBook", 9) == 0 |
2529 | || strncmp(model, "iBook", 5) == 0)) | 2528 | || strncmp(model, "iBook", 5) == 0)) |
diff --git a/arch/powerpc/platforms/powermac/pfunc_base.c b/arch/powerpc/platforms/powermac/pfunc_base.c index 4ffd2a9832a0..9b7150f10414 100644 --- a/arch/powerpc/platforms/powermac/pfunc_base.c +++ b/arch/powerpc/platforms/powermac/pfunc_base.c | |||
@@ -9,7 +9,12 @@ | |||
9 | #include <asm/pmac_feature.h> | 9 | #include <asm/pmac_feature.h> |
10 | #include <asm/pmac_pfunc.h> | 10 | #include <asm/pmac_pfunc.h> |
11 | 11 | ||
12 | #undef DEBUG | ||
13 | #ifdef DEBUG | ||
12 | #define DBG(fmt...) printk(fmt) | 14 | #define DBG(fmt...) printk(fmt) |
15 | #else | ||
16 | #define DBG(fmt...) | ||
17 | #endif | ||
13 | 18 | ||
14 | static irqreturn_t macio_gpio_irq(int irq, void *data, struct pt_regs *regs) | 19 | static irqreturn_t macio_gpio_irq(int irq, void *data, struct pt_regs *regs) |
15 | { | 20 | { |
diff --git a/arch/powerpc/platforms/powermac/pfunc_core.c b/arch/powerpc/platforms/powermac/pfunc_core.c index 356a739e52b2..4baa75b1d36f 100644 --- a/arch/powerpc/platforms/powermac/pfunc_core.c +++ b/arch/powerpc/platforms/powermac/pfunc_core.c | |||
@@ -20,7 +20,13 @@ | |||
20 | #define LOG_PARSE(fmt...) | 20 | #define LOG_PARSE(fmt...) |
21 | #define LOG_ERROR(fmt...) printk(fmt) | 21 | #define LOG_ERROR(fmt...) printk(fmt) |
22 | #define LOG_BLOB(t,b,c) | 22 | #define LOG_BLOB(t,b,c) |
23 | |||
24 | #undef DEBUG | ||
25 | #ifdef DEBUG | ||
23 | #define DBG(fmt...) printk(fmt) | 26 | #define DBG(fmt...) printk(fmt) |
27 | #else | ||
28 | #define DBG(fmt...) | ||
29 | #endif | ||
24 | 30 | ||
25 | /* Command numbers */ | 31 | /* Command numbers */ |
26 | #define PMF_CMD_LIST 0 | 32 | #define PMF_CMD_LIST 0 |
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c index 97c54e19c1b5..385aab90c4d2 100644 --- a/arch/powerpc/platforms/powermac/setup.c +++ b/arch/powerpc/platforms/powermac/setup.c | |||
@@ -621,10 +621,6 @@ static void __init pmac_init_early(void) | |||
621 | /* Probe motherboard chipset */ | 621 | /* Probe motherboard chipset */ |
622 | pmac_feature_init(); | 622 | pmac_feature_init(); |
623 | 623 | ||
624 | /* We can NAP */ | ||
625 | powersave_nap = 1; | ||
626 | printk(KERN_INFO "Using native/NAP idle loop\n"); | ||
627 | |||
628 | /* Initialize debug stuff */ | 624 | /* Initialize debug stuff */ |
629 | udbg_scc_init(!!strstr(cmd_line, "sccdbg")); | 625 | udbg_scc_init(!!strstr(cmd_line, "sccdbg")); |
630 | udbg_adb_init(!!strstr(cmd_line, "btextdbg")); | 626 | udbg_adb_init(!!strstr(cmd_line, "btextdbg")); |
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c index 0df2cdcd805c..6d64a9bf3474 100644 --- a/arch/powerpc/platforms/powermac/smp.c +++ b/arch/powerpc/platforms/powermac/smp.c | |||
@@ -435,7 +435,7 @@ struct smp_ops_t psurge_smp_ops = { | |||
435 | */ | 435 | */ |
436 | 436 | ||
437 | static void (*pmac_tb_freeze)(int freeze); | 437 | static void (*pmac_tb_freeze)(int freeze); |
438 | static unsigned long timebase; | 438 | static u64 timebase; |
439 | static int tb_req; | 439 | static int tb_req; |
440 | 440 | ||
441 | static void smp_core99_give_timebase(void) | 441 | static void smp_core99_give_timebase(void) |
diff --git a/arch/powerpc/platforms/pseries/Kconfig b/arch/powerpc/platforms/pseries/Kconfig index e3fc3407bb1f..a57032cf6f1b 100644 --- a/arch/powerpc/platforms/pseries/Kconfig +++ b/arch/powerpc/platforms/pseries/Kconfig | |||
@@ -9,13 +9,6 @@ config PPC_SPLPAR | |||
9 | processors, that is, which share physical processors between | 9 | processors, that is, which share physical processors between |
10 | two or more partitions. | 10 | two or more partitions. |
11 | 11 | ||
12 | config HMT | ||
13 | bool "Hardware multithreading" | ||
14 | depends on SMP && PPC_PSERIES && BROKEN | ||
15 | help | ||
16 | This option enables hardware multithreading on RS64 cpus. | ||
17 | pSeries systems p620 and p660 have such a cpu type. | ||
18 | |||
19 | config EEH | 12 | config EEH |
20 | bool "PCI Extended Error Handling (EEH)" if EMBEDDED | 13 | bool "PCI Extended Error Handling (EEH)" if EMBEDDED |
21 | depends on PPC_PSERIES | 14 | depends on PPC_PSERIES |
@@ -26,7 +19,7 @@ config SCANLOG | |||
26 | depends on RTAS_PROC && PPC_PSERIES | 19 | depends on RTAS_PROC && PPC_PSERIES |
27 | 20 | ||
28 | config LPARCFG | 21 | config LPARCFG |
29 | tristate "LPAR Configuration Data" | 22 | bool "LPAR Configuration Data" |
30 | depends on PPC_PSERIES || PPC_ISERIES | 23 | depends on PPC_PSERIES || PPC_ISERIES |
31 | help | 24 | help |
32 | Provide system capacity information via human readable | 25 | Provide system capacity information via human readable |
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c index 83578313ee7e..2ab9dcdfb415 100644 --- a/arch/powerpc/platforms/pseries/eeh.c +++ b/arch/powerpc/platforms/pseries/eeh.c | |||
@@ -893,6 +893,20 @@ void eeh_add_device_tree_early(struct device_node *dn) | |||
893 | } | 893 | } |
894 | EXPORT_SYMBOL_GPL(eeh_add_device_tree_early); | 894 | EXPORT_SYMBOL_GPL(eeh_add_device_tree_early); |
895 | 895 | ||
896 | void eeh_add_device_tree_late(struct pci_bus *bus) | ||
897 | { | ||
898 | struct pci_dev *dev; | ||
899 | |||
900 | list_for_each_entry(dev, &bus->devices, bus_list) { | ||
901 | eeh_add_device_late(dev); | ||
902 | if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) { | ||
903 | struct pci_bus *subbus = dev->subordinate; | ||
904 | if (subbus) | ||
905 | eeh_add_device_tree_late(subbus); | ||
906 | } | ||
907 | } | ||
908 | } | ||
909 | |||
896 | /** | 910 | /** |
897 | * eeh_add_device_late - perform EEH initialization for the indicated pci device | 911 | * eeh_add_device_late - perform EEH initialization for the indicated pci device |
898 | * @dev: pci device for which to set up EEH | 912 | * @dev: pci device for which to set up EEH |
diff --git a/arch/powerpc/platforms/pseries/eeh_driver.c b/arch/powerpc/platforms/pseries/eeh_driver.c index e3cbba49fd6e..b811d5ff92fe 100644 --- a/arch/powerpc/platforms/pseries/eeh_driver.c +++ b/arch/powerpc/platforms/pseries/eeh_driver.c | |||
@@ -37,7 +37,7 @@ | |||
37 | 37 | ||
38 | static inline const char * pcid_name (struct pci_dev *pdev) | 38 | static inline const char * pcid_name (struct pci_dev *pdev) |
39 | { | 39 | { |
40 | if (pdev->dev.driver) | 40 | if (pdev && pdev->dev.driver) |
41 | return pdev->dev.driver->name; | 41 | return pdev->dev.driver->name; |
42 | return ""; | 42 | return ""; |
43 | } | 43 | } |
diff --git a/arch/powerpc/platforms/pseries/pci_dlpar.c b/arch/powerpc/platforms/pseries/pci_dlpar.c index bdaa8aabdaa6..44abdeb9ca03 100644 --- a/arch/powerpc/platforms/pseries/pci_dlpar.c +++ b/arch/powerpc/platforms/pseries/pci_dlpar.c | |||
@@ -27,6 +27,7 @@ | |||
27 | 27 | ||
28 | #include <linux/pci.h> | 28 | #include <linux/pci.h> |
29 | #include <asm/pci-bridge.h> | 29 | #include <asm/pci-bridge.h> |
30 | #include <asm/ppc-pci.h> | ||
30 | 31 | ||
31 | static struct pci_bus * | 32 | static struct pci_bus * |
32 | find_bus_among_children(struct pci_bus *bus, | 33 | find_bus_among_children(struct pci_bus *bus, |
@@ -106,6 +107,8 @@ pcibios_fixup_new_pci_devices(struct pci_bus *bus, int fix_bus) | |||
106 | } | 107 | } |
107 | } | 108 | } |
108 | } | 109 | } |
110 | |||
111 | eeh_add_device_tree_late(bus); | ||
109 | } | 112 | } |
110 | EXPORT_SYMBOL_GPL(pcibios_fixup_new_pci_devices); | 113 | EXPORT_SYMBOL_GPL(pcibios_fixup_new_pci_devices); |
111 | 114 | ||
@@ -114,7 +117,6 @@ pcibios_pci_config_bridge(struct pci_dev *dev) | |||
114 | { | 117 | { |
115 | u8 sec_busno; | 118 | u8 sec_busno; |
116 | struct pci_bus *child_bus; | 119 | struct pci_bus *child_bus; |
117 | struct pci_dev *child_dev; | ||
118 | 120 | ||
119 | /* Get busno of downstream bus */ | 121 | /* Get busno of downstream bus */ |
120 | pci_read_config_byte(dev, PCI_SECONDARY_BUS, &sec_busno); | 122 | pci_read_config_byte(dev, PCI_SECONDARY_BUS, &sec_busno); |
@@ -129,10 +131,6 @@ pcibios_pci_config_bridge(struct pci_dev *dev) | |||
129 | 131 | ||
130 | pci_scan_child_bus(child_bus); | 132 | pci_scan_child_bus(child_bus); |
131 | 133 | ||
132 | list_for_each_entry(child_dev, &child_bus->devices, bus_list) { | ||
133 | eeh_add_device_late(child_dev); | ||
134 | } | ||
135 | |||
136 | /* Fixup new pci devices without touching bus struct */ | 134 | /* Fixup new pci devices without touching bus struct */ |
137 | pcibios_fixup_new_pci_devices(child_bus, 0); | 135 | pcibios_fixup_new_pci_devices(child_bus, 0); |
138 | 136 | ||
@@ -160,18 +158,52 @@ pcibios_add_pci_devices(struct pci_bus * bus) | |||
160 | 158 | ||
161 | eeh_add_device_tree_early(dn); | 159 | eeh_add_device_tree_early(dn); |
162 | 160 | ||
163 | /* pci_scan_slot should find all children */ | 161 | if (_machine == PLATFORM_PSERIES_LPAR) { |
164 | slotno = PCI_SLOT(PCI_DN(dn->child)->devfn); | 162 | /* use ofdt-based probe */ |
165 | num = pci_scan_slot(bus, PCI_DEVFN(slotno, 0)); | 163 | of_scan_bus(dn, bus); |
166 | if (num) { | 164 | if (!list_empty(&bus->devices)) { |
167 | pcibios_fixup_new_pci_devices(bus, 1); | 165 | pcibios_fixup_new_pci_devices(bus, 0); |
168 | pci_bus_add_devices(bus); | 166 | pci_bus_add_devices(bus); |
169 | } | 167 | } |
168 | } else { | ||
169 | /* use legacy probe */ | ||
170 | slotno = PCI_SLOT(PCI_DN(dn->child)->devfn); | ||
171 | num = pci_scan_slot(bus, PCI_DEVFN(slotno, 0)); | ||
172 | if (num) { | ||
173 | pcibios_fixup_new_pci_devices(bus, 1); | ||
174 | pci_bus_add_devices(bus); | ||
175 | } | ||
170 | 176 | ||
171 | list_for_each_entry(dev, &bus->devices, bus_list) { | 177 | list_for_each_entry(dev, &bus->devices, bus_list) |
172 | eeh_add_device_late (dev); | 178 | if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) |
173 | if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) | 179 | pcibios_pci_config_bridge(dev); |
174 | pcibios_pci_config_bridge(dev); | ||
175 | } | 180 | } |
176 | } | 181 | } |
177 | EXPORT_SYMBOL_GPL(pcibios_add_pci_devices); | 182 | EXPORT_SYMBOL_GPL(pcibios_add_pci_devices); |
183 | |||
184 | struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn) | ||
185 | { | ||
186 | struct pci_controller *phb; | ||
187 | int primary; | ||
188 | |||
189 | primary = list_empty(&hose_list); | ||
190 | phb = pcibios_alloc_controller(dn); | ||
191 | if (!phb) | ||
192 | return NULL; | ||
193 | setup_phb(dn, phb); | ||
194 | pci_process_bridge_OF_ranges(phb, dn, 0); | ||
195 | |||
196 | pci_setup_phb_io_dynamic(phb, primary); | ||
197 | |||
198 | pci_devs_phb_init_dynamic(phb); | ||
199 | |||
200 | if (dn->child) | ||
201 | eeh_add_device_tree_early(dn); | ||
202 | |||
203 | scan_phb(phb); | ||
204 | pcibios_fixup_new_pci_devices(phb->bus, 0); | ||
205 | pci_bus_add_devices(phb->bus); | ||
206 | |||
207 | return phb; | ||
208 | } | ||
209 | EXPORT_SYMBOL_GPL(init_phb_dynamic); | ||
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c index 8e6b1ed1396e..8d710af50756 100644 --- a/arch/powerpc/platforms/pseries/smp.c +++ b/arch/powerpc/platforms/pseries/smp.c | |||
@@ -292,7 +292,7 @@ static inline int __devinit smp_startup_cpu(unsigned int lcpu) | |||
292 | if (start_cpu == RTAS_UNKNOWN_SERVICE) | 292 | if (start_cpu == RTAS_UNKNOWN_SERVICE) |
293 | return 1; | 293 | return 1; |
294 | 294 | ||
295 | status = rtas_call(start_cpu, 3, 1, NULL, pcpu, start_here, lcpu); | 295 | status = rtas_call(start_cpu, 3, 1, NULL, pcpu, start_here, pcpu); |
296 | if (status != 0) { | 296 | if (status != 0) { |
297 | printk(KERN_ERR "start-cpu failed: %i\n", status); | 297 | printk(KERN_ERR "start-cpu failed: %i\n", status); |
298 | return 0; | 298 | return 0; |