diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2016-07-05 01:04:06 -0400 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2016-07-21 05:07:26 -0400 |
commit | f2d576948d6cec16e4aae201d738c4f22039a551 (patch) | |
tree | dcbe46fe2c9fbe05c9c8e1668ff5a1076c07a3fe | |
parent | 565713840445b7ccafb28dc1230d57d40bcb42a5 (diff) |
powerpc: Get rid of ppc_md.init_early()
It is now called right after platform probe, so the probe function
can just do the job.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r-- | arch/powerpc/include/asm/machdep.h | 1 | ||||
-rw-r--r-- | arch/powerpc/kernel/setup_32.c | 3 | ||||
-rw-r--r-- | arch/powerpc/kernel/setup_64.c | 8 | ||||
-rw-r--r-- | arch/powerpc/platforms/512x/mpc5121_ads.c | 8 | ||||
-rw-r--r-- | arch/powerpc/platforms/512x/mpc512x_generic.c | 8 | ||||
-rw-r--r-- | arch/powerpc/platforms/512x/pdm360ng.c | 8 | ||||
-rw-r--r-- | arch/powerpc/platforms/chrp/setup.c | 5 | ||||
-rw-r--r-- | arch/powerpc/platforms/embedded6xx/c2k.c | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/embedded6xx/gamecube.c | 8 | ||||
-rw-r--r-- | arch/powerpc/platforms/embedded6xx/wii.c | 8 | ||||
-rw-r--r-- | arch/powerpc/platforms/maple/setup.c | 15 | ||||
-rw-r--r-- | arch/powerpc/platforms/pasemi/setup.c | 8 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/setup.c | 5 | ||||
-rw-r--r-- | arch/powerpc/platforms/powernv/setup.c | 5 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/setup.c | 9 |
15 files changed, 43 insertions, 60 deletions
diff --git a/arch/powerpc/include/asm/machdep.h b/arch/powerpc/include/asm/machdep.h index 5b2edf5ba114..76f5398e7152 100644 --- a/arch/powerpc/include/asm/machdep.h +++ b/arch/powerpc/include/asm/machdep.h | |||
@@ -53,7 +53,6 @@ struct machdep_calls { | |||
53 | 53 | ||
54 | int (*probe)(void); | 54 | int (*probe)(void); |
55 | void (*setup_arch)(void); /* Optional, may be NULL */ | 55 | void (*setup_arch)(void); /* Optional, may be NULL */ |
56 | void (*init_early)(void); | ||
57 | /* Optional, may be NULL. */ | 56 | /* Optional, may be NULL. */ |
58 | void (*show_cpuinfo)(struct seq_file *m); | 57 | void (*show_cpuinfo)(struct seq_file *m); |
59 | void (*show_percpuinfo)(struct seq_file *m, int i); | 58 | void (*show_percpuinfo)(struct seq_file *m, int i); |
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c index e7bb4e76896a..22347e87c354 100644 --- a/arch/powerpc/kernel/setup_32.c +++ b/arch/powerpc/kernel/setup_32.c | |||
@@ -263,9 +263,6 @@ void __init setup_arch(char **cmdline_p) | |||
263 | 263 | ||
264 | setup_power_save(); | 264 | setup_power_save(); |
265 | 265 | ||
266 | if (ppc_md.init_early) | ||
267 | ppc_md.init_early(); | ||
268 | |||
269 | find_legacy_serial_ports(); | 266 | find_legacy_serial_ports(); |
270 | 267 | ||
271 | smp_setup_cpu_maps(); | 268 | smp_setup_cpu_maps(); |
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c index 883d527899a7..8b9768a97387 100644 --- a/arch/powerpc/kernel/setup_64.c +++ b/arch/powerpc/kernel/setup_64.c | |||
@@ -511,14 +511,6 @@ void __init setup_system(void) | |||
511 | /* Probe the machine type */ | 511 | /* Probe the machine type */ |
512 | probe_machine(); | 512 | probe_machine(); |
513 | 513 | ||
514 | /* | ||
515 | * Do some platform specific early initializations, that includes | ||
516 | * setting up the hash table pointers. It also sets up some interrupt-mapping | ||
517 | * related options that will be used by finish_device_tree() | ||
518 | */ | ||
519 | if (ppc_md.init_early) | ||
520 | ppc_md.init_early(); | ||
521 | |||
522 | /* | 514 | /* |
523 | * We can discover serial ports now since the above did setup the | 515 | * We can discover serial ports now since the above did setup the |
524 | * hash table management for us, thus ioremap works. We do that early | 516 | * hash table management for us, thus ioremap works. We do that early |
diff --git a/arch/powerpc/platforms/512x/mpc5121_ads.c b/arch/powerpc/platforms/512x/mpc5121_ads.c index 4e03f04e3a1f..f65d5033cdb0 100644 --- a/arch/powerpc/platforms/512x/mpc5121_ads.c +++ b/arch/powerpc/platforms/512x/mpc5121_ads.c | |||
@@ -57,7 +57,12 @@ static void __init mpc5121_ads_init_IRQ(void) | |||
57 | */ | 57 | */ |
58 | static int __init mpc5121_ads_probe(void) | 58 | static int __init mpc5121_ads_probe(void) |
59 | { | 59 | { |
60 | return of_machine_is_compatible("fsl,mpc5121ads"); | 60 | if (!of_machine_is_compatible("fsl,mpc5121ads")) |
61 | return 0; | ||
62 | |||
63 | mpc512x_init_early(); | ||
64 | |||
65 | return 1; | ||
61 | } | 66 | } |
62 | 67 | ||
63 | define_machine(mpc5121_ads) { | 68 | define_machine(mpc5121_ads) { |
@@ -65,7 +70,6 @@ define_machine(mpc5121_ads) { | |||
65 | .probe = mpc5121_ads_probe, | 70 | .probe = mpc5121_ads_probe, |
66 | .setup_arch = mpc5121_ads_setup_arch, | 71 | .setup_arch = mpc5121_ads_setup_arch, |
67 | .init = mpc512x_init, | 72 | .init = mpc512x_init, |
68 | .init_early = mpc512x_init_early, | ||
69 | .init_IRQ = mpc5121_ads_init_IRQ, | 73 | .init_IRQ = mpc5121_ads_init_IRQ, |
70 | .get_irq = ipic_get_irq, | 74 | .get_irq = ipic_get_irq, |
71 | .calibrate_decr = generic_calibrate_decr, | 75 | .calibrate_decr = generic_calibrate_decr, |
diff --git a/arch/powerpc/platforms/512x/mpc512x_generic.c b/arch/powerpc/platforms/512x/mpc512x_generic.c index 87eba1753088..bf884d3075e4 100644 --- a/arch/powerpc/platforms/512x/mpc512x_generic.c +++ b/arch/powerpc/platforms/512x/mpc512x_generic.c | |||
@@ -38,14 +38,18 @@ static const char * const board[] __initconst = { | |||
38 | */ | 38 | */ |
39 | static int __init mpc512x_generic_probe(void) | 39 | static int __init mpc512x_generic_probe(void) |
40 | { | 40 | { |
41 | return of_device_compatible_match(of_root, board); | 41 | if (!of_device_compatible_match(of_root, board)) |
42 | return 0; | ||
43 | |||
44 | mpc512x_init_early(); | ||
45 | |||
46 | return 1; | ||
42 | } | 47 | } |
43 | 48 | ||
44 | define_machine(mpc512x_generic) { | 49 | define_machine(mpc512x_generic) { |
45 | .name = "MPC512x generic", | 50 | .name = "MPC512x generic", |
46 | .probe = mpc512x_generic_probe, | 51 | .probe = mpc512x_generic_probe, |
47 | .init = mpc512x_init, | 52 | .init = mpc512x_init, |
48 | .init_early = mpc512x_init_early, | ||
49 | .setup_arch = mpc512x_setup_arch, | 53 | .setup_arch = mpc512x_setup_arch, |
50 | .init_IRQ = mpc512x_init_IRQ, | 54 | .init_IRQ = mpc512x_init_IRQ, |
51 | .get_irq = ipic_get_irq, | 55 | .get_irq = ipic_get_irq, |
diff --git a/arch/powerpc/platforms/512x/pdm360ng.c b/arch/powerpc/platforms/512x/pdm360ng.c index f9cad19a33ab..dc81f05e0bce 100644 --- a/arch/powerpc/platforms/512x/pdm360ng.c +++ b/arch/powerpc/platforms/512x/pdm360ng.c | |||
@@ -113,7 +113,12 @@ void __init pdm360ng_init(void) | |||
113 | 113 | ||
114 | static int __init pdm360ng_probe(void) | 114 | static int __init pdm360ng_probe(void) |
115 | { | 115 | { |
116 | return of_machine_is_compatible("ifm,pdm360ng"); | 116 | if (!of_machine_is_compatible("ifm,pdm360ng")) |
117 | return 0; | ||
118 | |||
119 | mpc512x_init_early(); | ||
120 | |||
121 | return 1; | ||
117 | } | 122 | } |
118 | 123 | ||
119 | define_machine(pdm360ng) { | 124 | define_machine(pdm360ng) { |
@@ -121,7 +126,6 @@ define_machine(pdm360ng) { | |||
121 | .probe = pdm360ng_probe, | 126 | .probe = pdm360ng_probe, |
122 | .setup_arch = mpc512x_setup_arch, | 127 | .setup_arch = mpc512x_setup_arch, |
123 | .init = pdm360ng_init, | 128 | .init = pdm360ng_init, |
124 | .init_early = mpc512x_init_early, | ||
125 | .init_IRQ = mpc512x_init_IRQ, | 129 | .init_IRQ = mpc512x_init_IRQ, |
126 | .get_irq = ipic_get_irq, | 130 | .get_irq = ipic_get_irq, |
127 | .calibrate_decr = generic_calibrate_decr, | 131 | .calibrate_decr = generic_calibrate_decr, |
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c index c55002f01dc1..bfb300633dfe 100644 --- a/arch/powerpc/platforms/chrp/setup.c +++ b/arch/powerpc/platforms/chrp/setup.c | |||
@@ -253,7 +253,7 @@ static void __noreturn briq_restart(char *cmd) | |||
253 | * But unfortunately, the firmware does not connect /chosen/{stdin,stdout} | 253 | * But unfortunately, the firmware does not connect /chosen/{stdin,stdout} |
254 | * the the built-in serial node. Instead, a /failsafe node is created. | 254 | * the the built-in serial node. Instead, a /failsafe node is created. |
255 | */ | 255 | */ |
256 | static __init void chrp_init_early(void) | 256 | static __init void chrp_init(void) |
257 | { | 257 | { |
258 | struct device_node *node; | 258 | struct device_node *node; |
259 | const char *property; | 259 | const char *property; |
@@ -587,6 +587,8 @@ static int __init chrp_probe(void) | |||
587 | 587 | ||
588 | pm_power_off = rtas_power_off; | 588 | pm_power_off = rtas_power_off; |
589 | 589 | ||
590 | chrp_init(); | ||
591 | |||
590 | return 1; | 592 | return 1; |
591 | } | 593 | } |
592 | 594 | ||
@@ -595,7 +597,6 @@ define_machine(chrp) { | |||
595 | .probe = chrp_probe, | 597 | .probe = chrp_probe, |
596 | .setup_arch = chrp_setup_arch, | 598 | .setup_arch = chrp_setup_arch, |
597 | .init = chrp_init2, | 599 | .init = chrp_init2, |
598 | .init_early = chrp_init_early, | ||
599 | .show_cpuinfo = chrp_show_cpuinfo, | 600 | .show_cpuinfo = chrp_show_cpuinfo, |
600 | .init_IRQ = chrp_init_IRQ, | 601 | .init_IRQ = chrp_init_IRQ, |
601 | .restart = rtas_restart, | 602 | .restart = rtas_restart, |
diff --git a/arch/powerpc/platforms/embedded6xx/c2k.c b/arch/powerpc/platforms/embedded6xx/c2k.c index 7fef40edf044..d19e4e759597 100644 --- a/arch/powerpc/platforms/embedded6xx/c2k.c +++ b/arch/powerpc/platforms/embedded6xx/c2k.c | |||
@@ -130,6 +130,9 @@ static int __init c2k_probe(void) | |||
130 | 130 | ||
131 | _set_L2CR(0); | 131 | _set_L2CR(0); |
132 | _set_L2CR(L2CR_L2E | L2CR_L2PE | L2CR_L2I); | 132 | _set_L2CR(L2CR_L2E | L2CR_L2PE | L2CR_L2I); |
133 | |||
134 | mv64x60_init_early(); | ||
135 | |||
133 | return 1; | 136 | return 1; |
134 | } | 137 | } |
135 | 138 | ||
@@ -137,7 +140,6 @@ define_machine(c2k) { | |||
137 | .name = "C2K", | 140 | .name = "C2K", |
138 | .probe = c2k_probe, | 141 | .probe = c2k_probe, |
139 | .setup_arch = c2k_setup_arch, | 142 | .setup_arch = c2k_setup_arch, |
140 | .init_early = mv64x60_init_early, | ||
141 | .show_cpuinfo = c2k_show_cpuinfo, | 143 | .show_cpuinfo = c2k_show_cpuinfo, |
142 | .init_IRQ = mv64x60_init_irq, | 144 | .init_IRQ = mv64x60_init_irq, |
143 | .get_irq = mv64x60_get_irq, | 145 | .get_irq = mv64x60_get_irq, |
diff --git a/arch/powerpc/platforms/embedded6xx/gamecube.c b/arch/powerpc/platforms/embedded6xx/gamecube.c index f5a837fa8951..36789cec957c 100644 --- a/arch/powerpc/platforms/embedded6xx/gamecube.c +++ b/arch/powerpc/platforms/embedded6xx/gamecube.c | |||
@@ -54,11 +54,6 @@ static void __noreturn gamecube_halt(void) | |||
54 | gamecube_restart(NULL); | 54 | gamecube_restart(NULL); |
55 | } | 55 | } |
56 | 56 | ||
57 | static void __init gamecube_init_early(void) | ||
58 | { | ||
59 | ug_udbg_init(); | ||
60 | } | ||
61 | |||
62 | static int __init gamecube_probe(void) | 57 | static int __init gamecube_probe(void) |
63 | { | 58 | { |
64 | if (!of_machine_is_compatible("nintendo,gamecube")) | 59 | if (!of_machine_is_compatible("nintendo,gamecube")) |
@@ -66,6 +61,8 @@ static int __init gamecube_probe(void) | |||
66 | 61 | ||
67 | pm_power_off = gamecube_power_off; | 62 | pm_power_off = gamecube_power_off; |
68 | 63 | ||
64 | ug_udbg_init(); | ||
65 | |||
69 | return 1; | 66 | return 1; |
70 | } | 67 | } |
71 | 68 | ||
@@ -77,7 +74,6 @@ static void gamecube_shutdown(void) | |||
77 | define_machine(gamecube) { | 74 | define_machine(gamecube) { |
78 | .name = "gamecube", | 75 | .name = "gamecube", |
79 | .probe = gamecube_probe, | 76 | .probe = gamecube_probe, |
80 | .init_early = gamecube_init_early, | ||
81 | .restart = gamecube_restart, | 77 | .restart = gamecube_restart, |
82 | .halt = gamecube_halt, | 78 | .halt = gamecube_halt, |
83 | .init_IRQ = flipper_pic_probe, | 79 | .init_IRQ = flipper_pic_probe, |
diff --git a/arch/powerpc/platforms/embedded6xx/wii.c b/arch/powerpc/platforms/embedded6xx/wii.c index fe3e769db263..3fd683e40bc9 100644 --- a/arch/powerpc/platforms/embedded6xx/wii.c +++ b/arch/powerpc/platforms/embedded6xx/wii.c | |||
@@ -192,11 +192,6 @@ static void __noreturn wii_halt(void) | |||
192 | wii_spin(); | 192 | wii_spin(); |
193 | } | 193 | } |
194 | 194 | ||
195 | static void __init wii_init_early(void) | ||
196 | { | ||
197 | ug_udbg_init(); | ||
198 | } | ||
199 | |||
200 | static void __init wii_pic_probe(void) | 195 | static void __init wii_pic_probe(void) |
201 | { | 196 | { |
202 | flipper_pic_probe(); | 197 | flipper_pic_probe(); |
@@ -210,6 +205,8 @@ static int __init wii_probe(void) | |||
210 | 205 | ||
211 | pm_power_off = wii_power_off; | 206 | pm_power_off = wii_power_off; |
212 | 207 | ||
208 | ug_udbg_init(); | ||
209 | |||
213 | return 1; | 210 | return 1; |
214 | } | 211 | } |
215 | 212 | ||
@@ -222,7 +219,6 @@ static void wii_shutdown(void) | |||
222 | define_machine(wii) { | 219 | define_machine(wii) { |
223 | .name = "wii", | 220 | .name = "wii", |
224 | .probe = wii_probe, | 221 | .probe = wii_probe, |
225 | .init_early = wii_init_early, | ||
226 | .setup_arch = wii_setup_arch, | 222 | .setup_arch = wii_setup_arch, |
227 | .restart = wii_restart, | 223 | .restart = wii_restart, |
228 | .halt = wii_halt, | 224 | .halt = wii_halt, |
diff --git a/arch/powerpc/platforms/maple/setup.c b/arch/powerpc/platforms/maple/setup.c index d3d44cba661b..3c30c7a4534d 100644 --- a/arch/powerpc/platforms/maple/setup.c +++ b/arch/powerpc/platforms/maple/setup.c | |||
@@ -198,18 +198,6 @@ void __init maple_setup_arch(void) | |||
198 | mmio_nvram_init(); | 198 | mmio_nvram_init(); |
199 | } | 199 | } |
200 | 200 | ||
201 | /* | ||
202 | * Early initialization. | ||
203 | */ | ||
204 | static void __init maple_init_early(void) | ||
205 | { | ||
206 | DBG(" -> maple_init_early\n"); | ||
207 | |||
208 | iommu_init_early_dart(&maple_pci_controller_ops); | ||
209 | |||
210 | DBG(" <- maple_init_early\n"); | ||
211 | } | ||
212 | |||
213 | /* | 201 | /* |
214 | * This is almost identical to pSeries and CHRP. We need to make that | 202 | * This is almost identical to pSeries and CHRP. We need to make that |
215 | * code generic at one point, with appropriate bits in the device-tree to | 203 | * code generic at one point, with appropriate bits in the device-tree to |
@@ -306,6 +294,8 @@ static int __init maple_probe(void) | |||
306 | 294 | ||
307 | pm_power_off = maple_power_off; | 295 | pm_power_off = maple_power_off; |
308 | 296 | ||
297 | iommu_init_early_dart(&maple_pci_controller_ops); | ||
298 | |||
309 | return 1; | 299 | return 1; |
310 | } | 300 | } |
311 | 301 | ||
@@ -313,7 +303,6 @@ define_machine(maple) { | |||
313 | .name = "Maple", | 303 | .name = "Maple", |
314 | .probe = maple_probe, | 304 | .probe = maple_probe, |
315 | .setup_arch = maple_setup_arch, | 305 | .setup_arch = maple_setup_arch, |
316 | .init_early = maple_init_early, | ||
317 | .init_IRQ = maple_init_IRQ, | 306 | .init_IRQ = maple_init_IRQ, |
318 | .pci_irq_fixup = maple_pci_irq_fixup, | 307 | .pci_irq_fixup = maple_pci_irq_fixup, |
319 | .pci_get_legacy_ide_irq = maple_pci_get_legacy_ide_irq, | 308 | .pci_get_legacy_ide_irq = maple_pci_get_legacy_ide_irq, |
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c index ec810ddb10ee..e86c1bd08f1f 100644 --- a/arch/powerpc/platforms/pasemi/setup.c +++ b/arch/powerpc/platforms/pasemi/setup.c | |||
@@ -339,11 +339,6 @@ out: | |||
339 | return !!(srr1 & 0x2); | 339 | return !!(srr1 & 0x2); |
340 | } | 340 | } |
341 | 341 | ||
342 | static void __init pas_init_early(void) | ||
343 | { | ||
344 | iommu_init_early_pasemi(); | ||
345 | } | ||
346 | |||
347 | #ifdef CONFIG_PCMCIA | 342 | #ifdef CONFIG_PCMCIA |
348 | static int pcmcia_notify(struct notifier_block *nb, unsigned long action, | 343 | static int pcmcia_notify(struct notifier_block *nb, unsigned long action, |
349 | void *data) | 344 | void *data) |
@@ -424,6 +419,8 @@ static int __init pas_probe(void) | |||
424 | !of_machine_is_compatible("pasemi,pwrficient")) | 419 | !of_machine_is_compatible("pasemi,pwrficient")) |
425 | return 0; | 420 | return 0; |
426 | 421 | ||
422 | iommu_init_early_pasemi(); | ||
423 | |||
427 | return 1; | 424 | return 1; |
428 | } | 425 | } |
429 | 426 | ||
@@ -431,7 +428,6 @@ define_machine(pasemi) { | |||
431 | .name = "PA Semi PWRficient", | 428 | .name = "PA Semi PWRficient", |
432 | .probe = pas_probe, | 429 | .probe = pas_probe, |
433 | .setup_arch = pas_setup_arch, | 430 | .setup_arch = pas_setup_arch, |
434 | .init_early = pas_init_early, | ||
435 | .init_IRQ = pas_init_IRQ, | 431 | .init_IRQ = pas_init_IRQ, |
436 | .get_irq = mpic_get_irq, | 432 | .get_irq = mpic_get_irq, |
437 | .restart = pas_restart, | 433 | .restart = pas_restart, |
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c index 60ca40ac3519..3de4a7c85140 100644 --- a/arch/powerpc/platforms/powermac/setup.c +++ b/arch/powerpc/platforms/powermac/setup.c | |||
@@ -452,7 +452,7 @@ pmac_halt(void) | |||
452 | /* | 452 | /* |
453 | * Early initialization. | 453 | * Early initialization. |
454 | */ | 454 | */ |
455 | static void __init pmac_init_early(void) | 455 | static void __init pmac_init(void) |
456 | { | 456 | { |
457 | /* Enable early btext debug if requested */ | 457 | /* Enable early btext debug if requested */ |
458 | if (strstr(boot_command_line, "btextdbg")) { | 458 | if (strstr(boot_command_line, "btextdbg")) { |
@@ -603,6 +603,8 @@ static int __init pmac_probe(void) | |||
603 | 603 | ||
604 | pm_power_off = pmac_power_off; | 604 | pm_power_off = pmac_power_off; |
605 | 605 | ||
606 | pmac_init(); | ||
607 | |||
606 | return 1; | 608 | return 1; |
607 | } | 609 | } |
608 | 610 | ||
@@ -610,7 +612,6 @@ define_machine(powermac) { | |||
610 | .name = "PowerMac", | 612 | .name = "PowerMac", |
611 | .probe = pmac_probe, | 613 | .probe = pmac_probe, |
612 | .setup_arch = pmac_setup_arch, | 614 | .setup_arch = pmac_setup_arch, |
613 | .init_early = pmac_init_early, | ||
614 | .show_cpuinfo = pmac_show_cpuinfo, | 615 | .show_cpuinfo = pmac_show_cpuinfo, |
615 | .init_IRQ = pmac_pic_init, | 616 | .init_IRQ = pmac_pic_init, |
616 | .get_irq = NULL, /* changed later */ | 617 | .get_irq = NULL, /* changed later */ |
diff --git a/arch/powerpc/platforms/powernv/setup.c b/arch/powerpc/platforms/powernv/setup.c index 8865efa54e51..efe8b6bb168b 100644 --- a/arch/powerpc/platforms/powernv/setup.c +++ b/arch/powerpc/platforms/powernv/setup.c | |||
@@ -58,7 +58,7 @@ static void __init pnv_setup_arch(void) | |||
58 | /* XXX PMCS */ | 58 | /* XXX PMCS */ |
59 | } | 59 | } |
60 | 60 | ||
61 | static void __init pnv_init_early(void) | 61 | static void __init pnv_init(void) |
62 | { | 62 | { |
63 | /* | 63 | /* |
64 | * Initialize the LPC bus now so that legacy serial | 64 | * Initialize the LPC bus now so that legacy serial |
@@ -276,6 +276,8 @@ static int __init pnv_probe(void) | |||
276 | 276 | ||
277 | pr_debug("PowerNV detected !\n"); | 277 | pr_debug("PowerNV detected !\n"); |
278 | 278 | ||
279 | pnv_init(); | ||
280 | |||
279 | return 1; | 281 | return 1; |
280 | } | 282 | } |
281 | 283 | ||
@@ -301,7 +303,6 @@ static unsigned long pnv_get_proc_freq(unsigned int cpu) | |||
301 | define_machine(powernv) { | 303 | define_machine(powernv) { |
302 | .name = "PowerNV", | 304 | .name = "PowerNV", |
303 | .probe = pnv_probe, | 305 | .probe = pnv_probe, |
304 | .init_early = pnv_init_early, | ||
305 | .setup_arch = pnv_setup_arch, | 306 | .setup_arch = pnv_setup_arch, |
306 | .init_IRQ = pnv_init_IRQ, | 307 | .init_IRQ = pnv_init_IRQ, |
307 | .show_cpuinfo = pnv_show_cpuinfo, | 308 | .show_cpuinfo = pnv_show_cpuinfo, |
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index 6988b9dc3d3b..4ffcaa6f8670 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c | |||
@@ -620,9 +620,9 @@ static void pSeries_cmo_feature_init(void) | |||
620 | /* | 620 | /* |
621 | * Early initialization. Relocation is on but do not reference unbolted pages | 621 | * Early initialization. Relocation is on but do not reference unbolted pages |
622 | */ | 622 | */ |
623 | static void __init pSeries_init_early(void) | 623 | static void __init pseries_init(void) |
624 | { | 624 | { |
625 | pr_debug(" -> pSeries_init_early()\n"); | 625 | pr_debug(" -> pseries_init()\n"); |
626 | 626 | ||
627 | #ifdef CONFIG_HVC_CONSOLE | 627 | #ifdef CONFIG_HVC_CONSOLE |
628 | if (firmware_has_feature(FW_FEATURE_LPAR)) | 628 | if (firmware_has_feature(FW_FEATURE_LPAR)) |
@@ -639,7 +639,7 @@ static void __init pSeries_init_early(void) | |||
639 | pSeries_cmo_feature_init(); | 639 | pSeries_cmo_feature_init(); |
640 | iommu_init_early_pSeries(); | 640 | iommu_init_early_pSeries(); |
641 | 641 | ||
642 | pr_debug(" <- pSeries_init_early()\n"); | 642 | pr_debug(" <- pseries_init()\n"); |
643 | } | 643 | } |
644 | 644 | ||
645 | /** | 645 | /** |
@@ -691,6 +691,8 @@ static int __init pSeries_probe(void) | |||
691 | pr_debug("Machine is%s LPAR !\n", | 691 | pr_debug("Machine is%s LPAR !\n", |
692 | (powerpc_firmware_features & FW_FEATURE_LPAR) ? "" : " not"); | 692 | (powerpc_firmware_features & FW_FEATURE_LPAR) ? "" : " not"); |
693 | 693 | ||
694 | pseries_init(); | ||
695 | |||
694 | return 1; | 696 | return 1; |
695 | } | 697 | } |
696 | 698 | ||
@@ -709,7 +711,6 @@ define_machine(pseries) { | |||
709 | .name = "pSeries", | 711 | .name = "pSeries", |
710 | .probe = pSeries_probe, | 712 | .probe = pSeries_probe, |
711 | .setup_arch = pSeries_setup_arch, | 713 | .setup_arch = pSeries_setup_arch, |
712 | .init_early = pSeries_init_early, | ||
713 | .init_IRQ = pseries_init_irq, | 714 | .init_IRQ = pseries_init_irq, |
714 | .show_cpuinfo = pSeries_show_cpuinfo, | 715 | .show_cpuinfo = pSeries_show_cpuinfo, |
715 | .log_error = pSeries_log_error, | 716 | .log_error = pSeries_log_error, |