msm: clock: Support multi-target compilation
Having multiple late initcalls across all the clock-$(ARCH) files
won't work when they are compiled together. Register a struct
with msm_clock_init() so that clock.c can driver the init() and
late_init() calls that need to be made per SoC.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
diff --git a/arch/arm/mach-msm/clock-pcom-lookup.c b/arch/arm/mach-msm/clock-pcom-lookup.c
index 7936be0..1b65ec0 100644
--- a/arch/arm/mach-msm/clock-pcom-lookup.c
+++ b/arch/arm/mach-msm/clock-pcom-lookup.c
@@ -141,7 +141,7 @@
static DEFINE_CLK_VOTER(ebi_vfe_clk, &ebi1_clk.c);
static DEFINE_CLK_VOTER(ebi_adm_clk, &ebi1_clk.c);
-struct clk_lookup msm_clocks_7x01a[] = {
+static struct clk_lookup msm_clocks_7x01a[] = {
CLK_LOOKUP("adm_clk", adm_clk.c, NULL),
CLK_LOOKUP("adsp_clk", adsp_clk.c, NULL),
CLK_LOOKUP("ebi1_clk", ebi1_clk.c, NULL),
@@ -184,9 +184,13 @@
CLK_LOOKUP("vfe_clk", vfe_clk.c, NULL),
CLK_LOOKUP("vfe_mdc_clk", vfe_mdc_clk.c, NULL),
};
-unsigned msm_num_clocks_7x01a = ARRAY_SIZE(msm_clocks_7x01a);
-struct clk_lookup msm_clocks_7x27[] = {
+struct clock_init_data msm7x01a_clock_init_data __initdata = {
+ .table = msm_clocks_7x01a,
+ .size = ARRAY_SIZE(msm_clocks_7x01a),
+};
+
+static struct clk_lookup msm_clocks_7x27[] = {
CLK_LOOKUP("adm_clk", adm_clk.c, NULL),
CLK_LOOKUP("adsp_clk", adsp_clk.c, NULL),
CLK_LOOKUP("ebi1_clk", ebi1_clk.c, NULL),
@@ -239,9 +243,13 @@
CLK_LOOKUP("ebi1_vfe_clk", ebi_vfe_clk.c, NULL),
CLK_LOOKUP("ebi1_clk", ebi_adm_clk.c, "msm_dmov"),
};
-unsigned msm_num_clocks_7x27 = ARRAY_SIZE(msm_clocks_7x27);
-struct clk_lookup msm_clocks_7x27a[] = {
+struct clock_init_data msm7x27_clock_init_data __initdata = {
+ .table = msm_clocks_7x27,
+ .size = ARRAY_SIZE(msm_clocks_7x27),
+};
+
+static struct clk_lookup msm_clocks_7x27a[] = {
CLK_LOOKUP("adm_clk", adm_clk.c, NULL),
CLK_LOOKUP("adsp_clk", adsp_clk.c, NULL),
CLK_LOOKUP("ahb_m_clk", ahb_m_clk.c, NULL),
@@ -311,9 +319,13 @@
CLK_LOOKUP("ebi1_vfe_clk", ebi_vfe_clk.c, NULL),
CLK_LOOKUP("ebi1_clk", ebi_adm_clk.c, "msm_dmov"),
};
-unsigned msm_num_clocks_7x27a = ARRAY_SIZE(msm_clocks_7x27a);
-struct clk_lookup msm_clocks_8x50[] = {
+struct clock_init_data msm7x27a_clock_init_data __initdata = {
+ .table = msm_clocks_7x27a,
+ .size = ARRAY_SIZE(msm_clocks_7x27a),
+};
+
+static struct clk_lookup msm_clocks_8x50[] = {
CLK_LOOKUP("adm_clk", adm_clk.c, NULL),
CLK_LOOKUP("ce_clk", ce_clk.c, NULL),
CLK_LOOKUP("ebi1_clk", ebi1_clk.c, NULL),
@@ -382,4 +394,8 @@
CLK_LOOKUP("qup_clk", gsbi_clk.c, "qup_i2c.4"),
CLK_LOOKUP("qup_pclk", gsbi_p_clk.c, "qup_i2c.4"),
};
-unsigned msm_num_clocks_8x50 = ARRAY_SIZE(msm_clocks_8x50);
+
+struct clock_init_data qds8x50_clock_init_data __initdata = {
+ .table = msm_clocks_8x50,
+ .size = ARRAY_SIZE(msm_clocks_8x50),
+};