diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2011-04-04 11:08:05 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2011-04-06 14:21:24 -0400 |
commit | 2ce51f8b931a0e8b75dacbdff6df27d9be9da49f (patch) | |
tree | 3144eddadedc4237a6b66c11700f64aed852f975 /arch/arm/mach-shmobile/board-ap4evb.c | |
parent | 4a0f081d1b41cfe68df153d0bac7ad6baf226791 (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.c | 11 |
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 | ||
950 | static int __init hdmi_init_pm_clock(void) | 950 | static 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 | ||
996 | out: | 994 | out: |
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 | ||
1002 | device_initcall(hdmi_init_pm_clock); | ||
1003 | |||
1004 | static int __init fsi_init_pm_clock(void) | 999 | static 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 | ||
1353 | static void __init ap4evb_timer_init(void) | 1350 | static void __init ap4evb_timer_init(void) |