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/board-apq8064.c b/arch/arm/mach-msm/board-apq8064.c
index 6b5eee6..d9aba25 100644
--- a/arch/arm/mach-msm/board-apq8064.c
+++ b/arch/arm/mach-msm/board-apq8064.c
@@ -107,7 +107,7 @@
 {
 	if (socinfo_init() < 0)
 		pr_err("socinfo_init() failed!\n");
-	msm_clock_init(msm_clocks_8064_dummy, msm_num_clocks_8064_dummy);
+	msm_clock_init(&apq8064_dummy_clock_init_data);
 	gpiomux_init();
 
 	apq8064_device_qup_spi_gsbi5.dev.platform_data =
diff --git a/arch/arm/mach-msm/board-fsm9xxx.c b/arch/arm/mach-msm/board-fsm9xxx.c
index 5d619ea..451510a 100644
--- a/arch/arm/mach-msm/board-fsm9xxx.c
+++ b/arch/arm/mach-msm/board-fsm9xxx.c
@@ -905,7 +905,7 @@
 {
 	msm_shared_ram_phys = 0x00100000;
 	msm_map_fsm9xxx_io();
-	msm_clock_init(msm_clocks_fsm9xxx, msm_num_clocks_fsm9xxx);
+	msm_clock_init(&fsm9xxx_clock_init_data);
 }
 
 MACHINE_START(FSM9XXX_SURF, "QCT FSM9XXX")
diff --git a/arch/arm/mach-msm/board-msm7x27.c b/arch/arm/mach-msm/board-msm7x27.c
index 1e62998..a8ddad7 100644
--- a/arch/arm/mach-msm/board-msm7x27.c
+++ b/arch/arm/mach-msm/board-msm7x27.c
@@ -1881,7 +1881,7 @@
 #ifdef CONFIG_ARCH_MSM7X25
 	msm_clock_init(msm_clocks_7x25, msm_num_clocks_7x25);
 #elif defined(CONFIG_ARCH_MSM7X27)
-	msm_clock_init(msm_clocks_7x27, msm_num_clocks_7x27);
+	msm_clock_init(&msm7x27_clock_init_data);
 #endif
 
 #if defined(CONFIG_SMC91X)
diff --git a/arch/arm/mach-msm/board-msm7x30.c b/arch/arm/mach-msm/board-msm7x30.c
index 15e0b7f..af5b3c0 100644
--- a/arch/arm/mach-msm/board-msm7x30.c
+++ b/arch/arm/mach-msm/board-msm7x30.c
@@ -6963,7 +6963,7 @@
 
 	soc_version = socinfo_get_version();
 
-	msm7x30_clock_init();
+	msm_clock_init(&msm7x30_clock_init_data);
 #ifdef CONFIG_SERIAL_MSM_CONSOLE
 	msm7x30_init_uart2();
 #endif
diff --git a/arch/arm/mach-msm/board-msm8960.c b/arch/arm/mach-msm/board-msm8960.c
index 2b4ddaf..e6ba7b1 100644
--- a/arch/arm/mach-msm/board-msm8960.c
+++ b/arch/arm/mach-msm/board-msm8960.c
@@ -3399,7 +3399,7 @@
 	BUG_ON(msm_rpmrs_levels_init(msm_rpmrs_levels,
 				ARRAY_SIZE(msm_rpmrs_levels)));
 	regulator_suppress_info_printing();
-	msm8960_clock_init();
+	msm_clock_init(&msm8960_clock_init_data);
 	msm8960_device_ssbi_pm8921.dev.platform_data =
 				&msm8960_ssbi_pm8921_pdata;
 	pm8921_platform_data.num_regulators = msm_pm8921_regulator_pdata_len;
@@ -3446,7 +3446,7 @@
 	BUG_ON(msm_rpmrs_levels_init(msm_rpmrs_levels,
 				ARRAY_SIZE(msm_rpmrs_levels)));
 	regulator_suppress_info_printing();
-	msm8960_clock_init_dummy();
+	msm_clock_init(&msm8960_dummy_clock_init_data);
 	gpiomux_init();
 	ethernet_init();
 	msm8960_device_ssbi_pm8921.dev.platform_data =
@@ -3484,7 +3484,7 @@
 	regulator_suppress_info_printing();
 	if (msm_xo_init())
 		pr_err("Failed to initialize XO votes\n");
-	msm8960_clock_init();
+	msm_clock_init(&msm8960_clock_init_data);
 	msm8960_device_otg.dev.platform_data = &msm_otg_pdata;
 	msm8960_device_gadget_peripheral.dev.parent = &msm8960_device_otg.dev;
 	msm_device_hsusb_host.dev.parent = &msm8960_device_otg.dev;
diff --git a/arch/arm/mach-msm/board-msm8x60.c b/arch/arm/mach-msm/board-msm8x60.c
index 4015fc7..2c5e9a4 100644
--- a/arch/arm/mach-msm/board-msm8x60.c
+++ b/arch/arm/mach-msm/board-msm8x60.c
@@ -9794,7 +9794,7 @@
 	/* Initialize regulators needed for clock_init. */
 	platform_add_devices(early_regulators, ARRAY_SIZE(early_regulators));
 
-	msm8660_clock_init();
+	msm_clock_init(&msm8x60_clock_init_data);
 
 	/* Buses need to be initialized before early-device registration
 	 * to get the platform data for fabrics.
diff --git a/arch/arm/mach-msm/board-qsd8x50.c b/arch/arm/mach-msm/board-qsd8x50.c
index b6170f9..e02ef45 100644
--- a/arch/arm/mach-msm/board-qsd8x50.c
+++ b/arch/arm/mach-msm/board-qsd8x50.c
@@ -2451,7 +2451,7 @@
 	if (socinfo_init() < 0)
 		printk(KERN_ERR "%s: socinfo_init() failed!\n",
 		       __func__);
-	msm_clock_init(msm_clocks_8x50, msm_num_clocks_8x50);
+	msm_clock_init(&qds8x50_clock_init_data);
 	qsd8x50_cfg_smc91x();
 	msm_acpu_clock_init(&qsd8x50_clock_data);
 
diff --git a/arch/arm/mach-msm/clock-7x30.c b/arch/arm/mach-msm/clock-7x30.c
index 6134917..0dc0cab 100644
--- a/arch/arm/mach-msm/clock-7x30.c
+++ b/arch/arm/mach-msm/clock-7x30.c
@@ -2919,7 +2919,7 @@
 };
 
 /* Local clock driver initialization. */
-void __init msm7x30_clock_init(void)
+static void __init msm7x30_clock_init(void)
 {
 	int i;
 	uint32_t val;
@@ -2957,10 +2957,14 @@
 	clk_set_rate(&lpa_codec_clk.c, 1);
 	/* Sync the GRP2D clock to AXI */
 	clk_set_rate(&grp_2d_clk.c, 1);
-
-	msm_clock_init(msm_clocks_7x30, ARRAY_SIZE(msm_clocks_7x30));
 }
 
+struct clock_init_data msm7x30_clock_init_data __initdata = {
+	.table = msm_clocks_7x30,
+	.size = ARRAY_SIZE(msm_clocks_7x30),
+	.init = msm7x30_clock_init,
+};
+
 /*
  * Clock operation handler registration
  */
diff --git a/arch/arm/mach-msm/clock-8960.c b/arch/arm/mach-msm/clock-8960.c
index e0670ac..23b34d2 100644
--- a/arch/arm/mach-msm/clock-8960.c
+++ b/arch/arm/mach-msm/clock-8960.c
@@ -4110,15 +4110,8 @@
 	return 0;
 }
 
-void __init msm8960_clock_init_dummy(void)
-{
-	soc_update_sys_vdd = msm8960_update_sys_vdd;
-	local_vote_sys_vdd(HIGH);
-	msm_clock_init(msm_clocks_8960_dummy, msm_num_clocks_8960_dummy);
-}
-
 /* Local clock driver initialization. */
-void __init msm8960_clock_init(void)
+static void __init msm8960_clock_init(void)
 {
 	xo_pxo = msm_xo_get(MSM_XO_PXO, "clock-8960");
 	if (IS_ERR(xo_pxo)) {
@@ -4166,12 +4159,16 @@
 		clk_enable(&sdc3_clk.c);
 		clk_enable(&sdc3_p_clk.c);
 	}
-
-	msm_clock_init(msm_clocks_8960, ARRAY_SIZE(msm_clocks_8960));
 }
 
-static int __init msm_clk_soc_late_init(void)
+static int __init msm8960_clock_late_init(void)
 {
 	return local_unvote_sys_vdd(HIGH);
 }
-late_initcall(msm_clk_soc_late_init);
+
+struct clock_init_data msm8960_clock_init_data __initdata = {
+	.table = msm_clocks_8960,
+	.size = ARRAY_SIZE(msm_clocks_8960),
+	.init = msm8960_clock_init,
+	.late_init = msm8960_clock_late_init,
+};
diff --git a/arch/arm/mach-msm/clock-8x60.c b/arch/arm/mach-msm/clock-8x60.c
index c840301..de6f79c 100644
--- a/arch/arm/mach-msm/clock-8x60.c
+++ b/arch/arm/mach-msm/clock-8x60.c
@@ -3770,7 +3770,7 @@
 }
 
 /* Local clock driver initialization. */
-void __init msm8660_clock_init(void)
+static void __init msm8660_clock_init(void)
 {
 	soc_update_sys_vdd = msm8660_update_sys_vdd;
 	xo_pxo = msm_xo_get(MSM_XO_PXO, "clock-8x60");
@@ -3804,11 +3804,9 @@
 	rcg_clk_disable(&pdm_clk.c);
 	rcg_clk_enable(&tssc_clk.c);
 	rcg_clk_disable(&tssc_clk.c);
-
-	msm_clock_init(msm_clocks_8x60, ARRAY_SIZE(msm_clocks_8x60));
 }
 
-static int __init msm_clk_soc_late_init(void)
+static int __init msm8660_clock_late_init(void)
 {
 	int rc;
 
@@ -3830,4 +3828,10 @@
 
 	return rc;
 }
-late_initcall(msm_clk_soc_late_init);
+
+struct clock_init_data msm8x60_clock_init_data __initdata = {
+	.table = msm_clocks_8x60,
+	.size = ARRAY_SIZE(msm_clocks_8x60),
+	.init = msm8660_clock_init,
+	.late_init = msm8660_clock_late_init,
+};
diff --git a/arch/arm/mach-msm/clock-debug.c b/arch/arm/mach-msm/clock-debug.c
index 36bc124..d1b9ad0 100644
--- a/arch/arm/mach-msm/clock-debug.c
+++ b/arch/arm/mach-msm/clock-debug.c
@@ -115,9 +115,9 @@
 static struct dentry *debugfs_base;
 static u32 debug_suspend;
 static struct clk_lookup *msm_clocks;
-static unsigned num_msm_clocks;
+static size_t num_msm_clocks;
 
-int __init clock_debug_init(struct clk_lookup *clocks, unsigned num_clocks)
+int __init clock_debug_init(struct clock_init_data *data)
 {
 	int ret = 0;
 
@@ -129,8 +129,8 @@
 		debugfs_remove_recursive(debugfs_base);
 		return -ENOMEM;
 	}
-	msm_clocks = clocks;
-	num_msm_clocks = num_clocks;
+	msm_clocks = data->table;
+	num_msm_clocks = data->size;
 
 	measure = clk_get_sys("debug", "measure");
 	if (IS_ERR(measure)) {
diff --git a/arch/arm/mach-msm/clock-fsm9xxx.c b/arch/arm/mach-msm/clock-fsm9xxx.c
index 52e4dfc..4a064a7 100644
--- a/arch/arm/mach-msm/clock-fsm9xxx.c
+++ b/arch/arm/mach-msm/clock-fsm9xxx.c
@@ -21,11 +21,13 @@
  * Clocks
  */
 
-struct clk_lookup msm_clocks_fsm9xxx[] = {
+static struct clk_lookup msm_clocks_fsm9xxx[] = {
 	CLK_DUMMY("adm_clk",	ADM0_CLK,	NULL, OFF),
 	CLK_DUMMY("uart_clk",	UART1_CLK,	"msm_serial.0", OFF),
 	CLK_DUMMY("ce_clk",	CE_CLK,		NULL, OFF),
 };
 
-unsigned msm_num_clocks_fsm9xxx = ARRAY_SIZE(msm_clocks_fsm9xxx);
-
+struct clock_init_data fsm9xxx_clock_init_data __initdata = {
+	.table = msm_clocks_fsm9xxx,
+	.size = ARRAY_SIZE(msm_clocks_fsm9xxx),
+};
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),
+};
diff --git a/arch/arm/mach-msm/clock.c b/arch/arm/mach-msm/clock.c
index 954e5bb..c145240 100644
--- a/arch/arm/mach-msm/clock.c
+++ b/arch/arm/mach-msm/clock.c
@@ -164,12 +164,17 @@
 }
 EXPORT_SYMBOL(clk_set_flags);
 
-static struct clk_lookup *msm_clocks;
-static unsigned msm_num_clocks;
+static struct clock_init_data __initdata *clk_init_data;
 
-void __init msm_clock_init(struct clk_lookup *clock_tbl, size_t num_clocks)
+void __init msm_clock_init(struct clock_init_data *data)
 {
 	unsigned n;
+	struct clk_lookup *clock_tbl = data->table;
+	size_t num_clocks = data->size;
+
+	clk_init_data = data;
+	if (clk_init_data->init)
+		clk_init_data->init();
 
 	for (n = 0; n < num_clocks; n++) {
 		struct clk *clk = clock_tbl[n].clk;
@@ -178,8 +183,6 @@
 	}
 
 	clkdev_add_table(clock_tbl, num_clocks);
-	msm_clocks = clock_tbl;
-	msm_num_clocks = num_clocks;
 }
 
 /*
@@ -189,13 +192,13 @@
  */
 static int __init clock_late_init(void)
 {
-	unsigned n;
+	unsigned n, count = 0;
 	unsigned long flags;
-	unsigned count = 0;
+	int ret = 0;
 
-	clock_debug_init(msm_clocks, msm_num_clocks);
-	for (n = 0; n < msm_num_clocks; n++) {
-		struct clk *clk = msm_clocks[n].clk;
+	clock_debug_init(clk_init_data);
+	for (n = 0; n < clk_init_data->size; n++) {
+		struct clk *clk = clk_init_data->table[n].clk;
 
 		clock_debug_add(clk);
 		if (!(clk->flags & CLKFLAG_SKIP_AUTO_OFF)) {
@@ -208,6 +211,8 @@
 		}
 	}
 	pr_info("clock_late_init() disabled %d unused clocks\n", count);
-	return 0;
+	if (clk_init_data->late_init)
+		ret = clk_init_data->late_init();
+	return ret;
 }
 late_initcall(clock_late_init);
diff --git a/arch/arm/mach-msm/clock.h b/arch/arm/mach-msm/clock.h
index 8f60b13..5ed5a94 100644
--- a/arch/arm/mach-msm/clock.h
+++ b/arch/arm/mach-msm/clock.h
@@ -17,7 +17,6 @@
 #ifndef __ARCH_ARM_MACH_MSM_CLOCK_H
 #define __ARCH_ARM_MACH_MSM_CLOCK_H
 
-#include <linux/init.h>
 #include <linux/types.h>
 #include <linux/list.h>
 #include <linux/clkdev.h>
@@ -74,20 +73,40 @@
 	.children = LIST_HEAD_INIT((name).children), \
 	.siblings = LIST_HEAD_INIT((name).siblings)
 
-void msm_clock_init(struct clk_lookup *clock_tbl, size_t num_clocks);
-void msm7x30_clock_init(void);
-void msm8660_clock_init(void);
-void msm8960_clock_init(void);
-void msm8960_clock_init_dummy(void);
+/**
+ * struct clock_init_data - SoC specific clock initialization data
+ * @table: table of lookups to add
+ * @size: size of @table
+ * @init: called before registering @table
+ * @late_init: called during late init
+ */
+struct clock_init_data {
+	struct clk_lookup *table;
+	size_t size;
+	void (*init)(void);
+	int (*late_init)(void);
+};
+
+extern struct clock_init_data apq8064_dummy_clock_init_data;
+extern struct clock_init_data fsm9xxx_clock_init_data;
+extern struct clock_init_data msm7x01a_clock_init_data;
+extern struct clock_init_data msm7x27_clock_init_data;
+extern struct clock_init_data msm7x27a_clock_init_data;
+extern struct clock_init_data msm7x30_clock_init_data;
+extern struct clock_init_data msm8960_clock_init_data;
+extern struct clock_init_data msm8960_dummy_clock_init_data;
+extern struct clock_init_data msm8x60_clock_init_data;
+extern struct clock_init_data qds8x50_clock_init_data;
+
+void msm_clock_init(struct clock_init_data *data);
 
 #ifdef CONFIG_DEBUG_FS
-int __init clock_debug_init(struct clk_lookup *clocks, unsigned num_clocks);
-int __init clock_debug_add(struct clk *clock);
+int clock_debug_init(struct clock_init_data *data);
+int clock_debug_add(struct clk *clock);
 void clock_debug_print_enabled(void);
 #else
-static inline int __init clock_debug_init(struct clk_lookup *clocks,
-					  unsigned num_clocks) { return 0; }
-static inline int __init clock_debug_add(struct clk *clock) { return 0; }
+static inline int clock_debug_init(struct clk_init_data *data) { return 0; }
+static inline int clock_debug_add(struct clk *clock) { return 0; }
 static inline void clock_debug_print_enabled(void) { return; }
 #endif
 
diff --git a/arch/arm/mach-msm/devices-8064.c b/arch/arm/mach-msm/devices-8064.c
index 26663be..fcd2460 100644
--- a/arch/arm/mach-msm/devices-8064.c
+++ b/arch/arm/mach-msm/devices-8064.c
@@ -600,4 +600,7 @@
 	CLK_DUMMY("dma_bam_pclk",	DMA_BAM_P_CLK,		NULL, 0),
 };
 
-unsigned msm_num_clocks_8064_dummy = ARRAY_SIZE(msm_clocks_8064_dummy);
+struct clock_init_data apq8064_dummy_clock_init_data __initdata = {
+	.table = msm_clocks_8064_dummy,
+	.size = ARRAY_SIZE(msm_clocks_8064_dummy),
+};
diff --git a/arch/arm/mach-msm/devices-8960.c b/arch/arm/mach-msm/devices-8960.c
index ffc6a30..e0613d9 100644
--- a/arch/arm/mach-msm/devices-8960.c
+++ b/arch/arm/mach-msm/devices-8960.c
@@ -1394,7 +1394,7 @@
 };
 #endif
 
-struct clk_lookup msm_clocks_8960_dummy[] = {
+static struct clk_lookup msm_clocks_8960_dummy[] = {
 	CLK_DUMMY("pll2",		PLL2,		NULL, 0),
 	CLK_DUMMY("pll8",		PLL8,		NULL, 0),
 	CLK_DUMMY("pll4",		PLL4,		NULL, 0),
@@ -1586,7 +1586,10 @@
 	CLK_DUMMY("dma_bam_pclk",	DMA_BAM_P_CLK,		NULL, 0),
 };
 
-unsigned msm_num_clocks_8960_dummy = ARRAY_SIZE(msm_clocks_8960_dummy);
+struct clock_init_data msm8960_dummy_clock_init_data __initdata = {
+	.table = msm_clocks_8960_dummy,
+	.size = ARRAY_SIZE(msm_clocks_8960_dummy),
+};
 
 #define LPASS_SLIMBUS_PHYS	0x28080000
 #define LPASS_SLIMBUS_BAM_PHYS	0x28084000
diff --git a/arch/arm/mach-msm/devices-msm7x27a.c b/arch/arm/mach-msm/devices-msm7x27a.c
index 2e59117..f20f41b 100644
--- a/arch/arm/mach-msm/devices-msm7x27a.c
+++ b/arch/arm/mach-msm/devices-msm7x27a.c
@@ -709,7 +709,7 @@
 	if (cpu_is_msm7x27aa())
 		msm7x2x_clock_data.max_speed_delta_khz = 504000;
 
-	msm_clock_init(msm_clocks_7x27a, msm_num_clocks_7x27a);
+	msm_clock_init(&msm7x27a_clock_init_data);
 	msm_acpu_clock_init(&msm7x2x_clock_data);
 
 	return 0;
diff --git a/arch/arm/mach-msm/devices.h b/arch/arm/mach-msm/devices.h
index d272fa6..c54dcd3 100644
--- a/arch/arm/mach-msm/devices.h
+++ b/arch/arm/mach-msm/devices.h
@@ -145,27 +145,6 @@
 
 extern struct platform_device qfec_device;
 
-extern struct clk_lookup msm_clocks_7x01a[];
-extern unsigned msm_num_clocks_7x01a;
-
-extern struct clk_lookup msm_clocks_7x25[];
-extern unsigned msm_num_clocks_7x25;
-
-extern struct clk_lookup msm_clocks_7x27[];
-extern unsigned msm_num_clocks_7x27;
-
-extern struct clk_lookup msm_clocks_7x27a[];
-extern unsigned msm_num_clocks_7x27a;
-
-extern struct clk_lookup msm_clocks_8x50[];
-extern unsigned msm_num_clocks_8x50;
-
-extern struct clk_lookup msm_clocks_8960_dummy[];
-extern unsigned msm_num_clocks_8960_dummy;
-
-extern struct clk_lookup msm_clocks_8064_dummy[];
-extern unsigned msm_num_clocks_8064_dummy;
-
 extern struct platform_device msm_kgsl_3d0;
 extern struct platform_device msm_kgsl_2d0;
 extern struct platform_device msm_kgsl_2d1;