Commit 5c334eed authored by Sylvain Munaut's avatar Sylvain Munaut Committed by Paul Mackerras

[POWERPC] 52xx: Don't use device_initcall to probe of_platform_bus

Using device_initcall makes it happen for every platform that
compiles this file in. This is really bad, for obvious reasons.

Instead, we use the .init field of the machine description. If
the platform needs the hook to do something specific it can provides
its own function and call mpc52xx_declare_of_platform_devices from
there. If not, the mpc52xx_declare_of_platform_devices function can
directly be used as the init hook.
Signed-off-by: default avatarSylvain Munaut <tnt@246tNt.com>
Acked-by: default avatarGrant Likely <grant.likely@secretlab.ca>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 56c336cb
...@@ -153,6 +153,7 @@ define_machine(lite52xx) { ...@@ -153,6 +153,7 @@ define_machine(lite52xx) {
.name = "lite52xx", .name = "lite52xx",
.probe = lite52xx_probe, .probe = lite52xx_probe,
.setup_arch = lite52xx_setup_arch, .setup_arch = lite52xx_setup_arch,
.init = mpc52xx_declare_of_platform_devices,
.init_IRQ = mpc52xx_init_irq, .init_IRQ = mpc52xx_init_irq,
.get_irq = mpc52xx_get_irq, .get_irq = mpc52xx_get_irq,
.show_cpuinfo = lite52xx_show_cpuinfo, .show_cpuinfo = lite52xx_show_cpuinfo,
......
...@@ -116,11 +116,12 @@ unmap_regs: ...@@ -116,11 +116,12 @@ unmap_regs:
if (xlb) iounmap(xlb); if (xlb) iounmap(xlb);
} }
static int __init void __init
mpc52xx_declare_of_platform_devices(void) mpc52xx_declare_of_platform_devices(void)
{ {
/* Find every child of the SOC node and add it to of_platform */ /* Find every child of the SOC node and add it to of_platform */
return of_platform_bus_probe(NULL, NULL, NULL); if (of_platform_bus_probe(NULL, NULL, NULL))
printk(KERN_ERR __FILE__ ": "
"Error while probing of_platform bus\n");
} }
device_initcall(mpc52xx_declare_of_platform_devices);
...@@ -244,6 +244,7 @@ struct mpc52xx_cdm { ...@@ -244,6 +244,7 @@ struct mpc52xx_cdm {
extern void __iomem * mpc52xx_find_and_map(const char *); extern void __iomem * mpc52xx_find_and_map(const char *);
extern unsigned int mpc52xx_find_ipb_freq(struct device_node *node); extern unsigned int mpc52xx_find_ipb_freq(struct device_node *node);
extern void mpc52xx_setup_cpu(void); extern void mpc52xx_setup_cpu(void);
extern void mpc52xx_declare_of_platform_devices(void);
extern void mpc52xx_init_irq(void); extern void mpc52xx_init_irq(void);
extern unsigned int mpc52xx_get_irq(void); extern unsigned int mpc52xx_get_irq(void);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment