ARM: arch-shmobile: only run FSI init on respective boards
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tue, 5 Apr 2011 01:22:33 +0000 (01:22 +0000)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 6 Apr 2011 18:21:38 +0000 (11:21 -0700)
If several boards are enabled in the kernel configuration,
fsi_init_pm_clock() functions from board-ap4evb.c
will run on any of them. Prevent this by calling these functions from the
.init_machine() callback instead of using device_initcall().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Cc: Magnus Damm <damm@opensource.se>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/arm/mach-shmobile/board-ap4evb.c

index 53c15e1..1e35fa9 100644 (file)
@@ -996,7 +996,7 @@ out:
                clk_put(hdmi_ick);
 }
 
-static int __init fsi_init_pm_clock(void)
+static void __init fsi_init_pm_clock(void)
 {
        struct clk *fsia_ick;
        int ret;
@@ -1005,7 +1005,7 @@ static int __init fsi_init_pm_clock(void)
        if (IS_ERR(fsia_ick)) {
                ret = PTR_ERR(fsia_ick);
                pr_err("Cannot get FSI ICK: %d\n", ret);
-               return ret;
+               return;
        }
 
        ret = clk_set_parent(fsia_ick, &sh7372_fsiack_clk);
@@ -1013,10 +1013,7 @@ static int __init fsi_init_pm_clock(void)
                pr_err("Cannot set FSI-A parent: %d\n", ret);
 
        clk_put(fsia_ick);
-
-       return ret;
 }
-device_initcall(fsi_init_pm_clock);
 
 /*
  * FIXME !!
@@ -1345,6 +1342,7 @@ static void __init ap4evb_init(void)
        platform_add_devices(ap4evb_devices, ARRAY_SIZE(ap4evb_devices));
 
        hdmi_init_pm_clock();
+       fsi_init_pm_clock();
 }
 
 static void __init ap4evb_timer_init(void)