[ARM] Fix Versatile PB initialisation to use .init_machine
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Thu, 30 Nov 2006 22:42:20 +0000 (22:42 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 30 Nov 2006 22:42:20 +0000 (22:42 +0000)
There's no point having the Versatile PB initialisation using an
arch_initcall() and then checking whether it's running on a
Versatile PB board - this is what the .init_machine function
pointer in the machine description is for.  Use it.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-versatile/versatile_pb.c

index 503725b166fc9c473649f737c65a42072f9fc0e7..be439bb9d450ca1695e6275ba1cfceb269996cb7 100644 (file)
@@ -81,22 +81,18 @@ static struct amba_device *amba_devs[] __initdata = {
        &mmc1_device,
 };
 
-static int __init versatile_pb_init(void)
+static void __init versatile_pb_init(void)
 {
        int i;
 
-       if (machine_is_versatile_pb()) {
-               for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
-                       struct amba_device *d = amba_devs[i];
-                       amba_device_register(d, &iomem_resource);
-               }
-       }
+       versatile_init();
 
-       return 0;
+       for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
+               struct amba_device *d = amba_devs[i];
+               amba_device_register(d, &iomem_resource);
+       }
 }
 
-arch_initcall(versatile_pb_init);
-
 MACHINE_START(VERSATILE_PB, "ARM-Versatile PB")
        /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
        .phys_io        = 0x101f1000,
@@ -105,5 +101,5 @@ MACHINE_START(VERSATILE_PB, "ARM-Versatile PB")
        .map_io         = versatile_map_io,
        .init_irq       = versatile_init_irq,
        .timer          = &versatile_timer,
-       .init_machine   = versatile_init,
+       .init_machine   = versatile_pb_init,
 MACHINE_END