aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile/board-ap4evb.c
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2011-04-04 11:08:05 -0400
committerPaul Mundt <lethal@linux-sh.org>2011-04-06 14:21:24 -0400
commit2ce51f8b931a0e8b75dacbdff6df27d9be9da49f (patch)
tree3144eddadedc4237a6b66c11700f64aed852f975 /arch/arm/mach-shmobile/board-ap4evb.c
parent4a0f081d1b41cfe68df153d0bac7ad6baf226791 (diff)
ARM: arch-shmobile: only run HDMI init on respective boards
If several boards are enabled in the kernel configuration, hdmi_init_pm_clock() functions from board-ap4evb.c and board-mackerel.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: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Cc: Magnus Damm <damm@opensource.se> Tested-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/arm/mach-shmobile/board-ap4evb.c')
-rw-r--r--arch/arm/mach-shmobile/board-ap4evb.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c
index 783b66fa95fb..53c15e186edb 100644
--- a/arch/arm/mach-shmobile/board-ap4evb.c
+++ b/arch/arm/mach-shmobile/board-ap4evb.c
@@ -947,7 +947,7 @@ static struct platform_device *ap4evb_devices[] __initdata = {
947 &ap4evb_camera, 947 &ap4evb_camera,
948}; 948};
949 949
950static int __init hdmi_init_pm_clock(void) 950static void __init hdmi_init_pm_clock(void)
951{ 951{
952 struct clk *hdmi_ick = clk_get(&hdmi_device.dev, "ick"); 952 struct clk *hdmi_ick = clk_get(&hdmi_device.dev, "ick");
953 int ret; 953 int ret;
@@ -988,19 +988,14 @@ static int __init hdmi_init_pm_clock(void)
988 pr_debug("PLLC2 set frequency %lu\n", rate); 988 pr_debug("PLLC2 set frequency %lu\n", rate);
989 989
990 ret = clk_set_parent(hdmi_ick, &sh7372_pllc2_clk); 990 ret = clk_set_parent(hdmi_ick, &sh7372_pllc2_clk);
991 if (ret < 0) { 991 if (ret < 0)
992 pr_err("Cannot set HDMI parent: %d\n", ret); 992 pr_err("Cannot set HDMI parent: %d\n", ret);
993 goto out;
994 }
995 993
996out: 994out:
997 if (!IS_ERR(hdmi_ick)) 995 if (!IS_ERR(hdmi_ick))
998 clk_put(hdmi_ick); 996 clk_put(hdmi_ick);
999 return ret;
1000} 997}
1001 998
1002device_initcall(hdmi_init_pm_clock);
1003
1004static int __init fsi_init_pm_clock(void) 999static int __init fsi_init_pm_clock(void)
1005{ 1000{
1006 struct clk *fsia_ick; 1001 struct clk *fsia_ick;
@@ -1348,6 +1343,8 @@ static void __init ap4evb_init(void)
1348 __raw_writel(srcr4 & ~(1 << 13), SRCR4); 1343 __raw_writel(srcr4 & ~(1 << 13), SRCR4);
1349 1344
1350 platform_add_devices(ap4evb_devices, ARRAY_SIZE(ap4evb_devices)); 1345 platform_add_devices(ap4evb_devices, ARRAY_SIZE(ap4evb_devices));
1346
1347 hdmi_init_pm_clock();
1351} 1348}
1352 1349
1353static void __init ap4evb_timer_init(void) 1350static void __init ap4evb_timer_init(void)