Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5c334eed6ecd66cebfbc80267149e755510d8bc8
Commit:     5c334eed6ecd66cebfbc80267149e755510d8bc8
Parent:     56c336cb05d58991f3e9d5f0ec098ba0f219a15e
Author:     Sylvain Munaut <[EMAIL PROTECTED]>
AuthorDate: Tue Jan 2 23:29:53 2007 +0100
Committer:  Paul Mackerras <[EMAIL PROTECTED]>
CommitDate: Tue Jan 9 17:03:02 2007 +1100

    [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: Sylvain Munaut <[EMAIL PROTECTED]>
    Acked-by: Grant Likely <[EMAIL PROTECTED]>
    Signed-off-by: Paul Mackerras <[EMAIL PROTECTED]>
---
 arch/powerpc/platforms/52xx/lite5200.c       |    1 +
 arch/powerpc/platforms/52xx/mpc52xx_common.c |    7 ++++---
 include/asm-powerpc/mpc52xx.h                |    1 +
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/platforms/52xx/lite5200.c 
b/arch/powerpc/platforms/52xx/lite5200.c
index eaff71e..0f21bab 100644
--- a/arch/powerpc/platforms/52xx/lite5200.c
+++ b/arch/powerpc/platforms/52xx/lite5200.c
@@ -153,6 +153,7 @@ define_machine(lite52xx) {
        .name           = "lite52xx",
        .probe          = lite52xx_probe,
        .setup_arch     = lite52xx_setup_arch,
+       .init           = mpc52xx_declare_of_platform_devices,
        .init_IRQ       = mpc52xx_init_irq,
        .get_irq        = mpc52xx_get_irq,
        .show_cpuinfo   = lite52xx_show_cpuinfo,
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c 
b/arch/powerpc/platforms/52xx/mpc52xx_common.c
index 8331ff4..cc40889 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_common.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c
@@ -116,11 +116,12 @@ unmap_regs:
        if (xlb) iounmap(xlb);
 }
 
-static int __init
+void __init
 mpc52xx_declare_of_platform_devices(void)
 {
        /* 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);
diff --git a/include/asm-powerpc/mpc52xx.h b/include/asm-powerpc/mpc52xx.h
index 4a28a85..4560d72 100644
--- a/include/asm-powerpc/mpc52xx.h
+++ b/include/asm-powerpc/mpc52xx.h
@@ -244,6 +244,7 @@ struct mpc52xx_cdm {
 extern void __iomem * mpc52xx_find_and_map(const char *);
 extern unsigned int mpc52xx_find_ipb_freq(struct device_node *node);
 extern void mpc52xx_setup_cpu(void);
+extern void mpc52xx_declare_of_platform_devices(void);
 
 extern void mpc52xx_init_irq(void);
 extern unsigned int mpc52xx_get_irq(void);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to