arm: prima2: use of_platform_populate instead of of_platform_bus_probe
authorBarry Song <Baohua.Song@csr.com>
Thu, 16 May 2013 03:26:10 +0000 (11:26 +0800)
committerBarry Song <Baohua.Song@csr.com>
Mon, 3 Jun 2013 05:51:58 +0000 (13:51 +0800)
use of_platform_populate to populate platform devices, it is suitable
for creating devices which are children of the root node, then makes
things like pcm work.

this patch removes sirfsoc_mach_init() function and lets arm core do
of_platform_populate:

    static int __init customize_machine(void)
    {
            /*
             * customizes platform devices, or adds new ones
             * On DT based machines, we fall back to populating the
             * machine from the device tree, if no callback is provided,
             * otherwise we would always need an init_machine callback.
             */
            if (machine_desc->init_machine)
                    machine_desc->init_machine();
            else
                    of_platform_populate(NULL, of_default_bus_match_table,
                                            NULL, NULL);
            return 0;
    }

Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Rongjun Ying <Rongjun.Ying@csr.com>
arch/arm/mach-prima2/common.c

index e95ebef603a71489a2fc7dced7eaffd2e2efbf12..e588c2152133231fbf77dd1a219d782e3d69d586 100644 (file)
 #include <linux/of_platform.h>
 #include "common.h"
 
-static struct of_device_id sirfsoc_of_bus_ids[] __initdata = {
-       { .compatible = "simple-bus", },
-       {},
-};
-
-void __init sirfsoc_mach_init(void)
-{
-       of_platform_bus_probe(NULL, sirfsoc_of_bus_ids, NULL);
-}
-
 void __init sirfsoc_init_late(void)
 {
        sirfsoc_pm_init();
@@ -57,7 +47,6 @@ DT_MACHINE_START(ATLAS6_DT, "Generic ATLAS6 (Flattened Device Tree)")
        .map_io         = sirfsoc_map_io,
        .init_irq       = irqchip_init,
        .init_time      = sirfsoc_init_time,
-       .init_machine   = sirfsoc_mach_init,
        .init_late      = sirfsoc_init_late,
        .dt_compat      = atlas6_dt_match,
        .restart        = sirfsoc_restart,
@@ -77,7 +66,6 @@ DT_MACHINE_START(PRIMA2_DT, "Generic PRIMA2 (Flattened Device Tree)")
        .init_irq       = irqchip_init,
        .init_time      = sirfsoc_init_time,
        .dma_zone_size  = SZ_256M,
-       .init_machine   = sirfsoc_mach_init,
        .init_late      = sirfsoc_init_late,
        .dt_compat      = prima2_dt_match,
        .restart        = sirfsoc_restart,
@@ -96,7 +84,6 @@ DT_MACHINE_START(MARCO_DT, "Generic MARCO (Flattened Device Tree)")
        .map_io         = sirfsoc_map_io,
        .init_irq       = irqchip_init,
        .init_time      = sirfsoc_init_time,
-       .init_machine   = sirfsoc_mach_init,
        .init_late      = sirfsoc_init_late,
        .dt_compat      = marco_dt_match,
        .restart        = sirfsoc_restart,