msm: acpuclock: Move SoC-specific data into acpuclock drivers

As part of this, hard-code any configuration values that will
not change from board-to-board inside each driver instead of
passing them through the acpuclk_soc_data struct.

Signed-off-by: Matt Wagantall <mattw@codeaurora.org>

Conflicts:

	arch/arm/mach-msm/acpuclock-8x50.c
diff --git a/arch/arm/mach-msm/acpuclock-7201.c b/arch/arm/mach-msm/acpuclock-7201.c
index f06b069..4702e51 100644
--- a/arch/arm/mach-msm/acpuclock-7201.c
+++ b/arch/arm/mach-msm/acpuclock-7201.c
@@ -75,9 +75,7 @@
 struct clock_state {
 	struct clkctl_acpu_speed	*current_speed;
 	struct mutex			lock;
-	uint32_t			acpu_switch_time_us;
 	uint32_t			max_speed_delta_khz;
-	uint32_t			vdd_switch_time_us;
 	unsigned long			max_axi_khz;
 	struct clk			*ebi1_clk;
 };
@@ -502,7 +500,7 @@
 
 	writel_relaxed((1 << 7) | (vdd << 3), A11S_VDD_SVS_PLEVEL_ADDR);
 	mb();
-	udelay(drv_state.vdd_switch_time_us);
+	udelay(62);
 	if ((readl_relaxed(A11S_VDD_SVS_PLEVEL_ADDR) & 0x7) != vdd) {
 		pr_err("VDD set failed\n");
 		return -EIO;
@@ -690,7 +688,7 @@
 		/* Re-adjust lpj for the new clock speed. */
 		loops_per_jiffy = cur_s->lpj;
 		mb();
-		udelay(drv_state.acpu_switch_time_us);
+		udelay(50);
 	}
 
 	/* Nothing else to do for SWFI. */
@@ -1062,9 +1060,10 @@
 	.set_rate = acpuclk_7201_set_rate,
 	.get_rate = acpuclk_7201_get_rate,
 	.power_collapse_khz = POWER_COLLAPSE_KHZ,
+	.switch_time_us = 50,
 };
 
-int __init acpuclk_7201_init(struct acpuclk_platform_data *clkdata)
+static int __init acpuclk_7201_init(struct acpuclk_soc_data *soc_data)
 {
 	pr_info("%s()\n", __func__);
 
@@ -1073,11 +1072,8 @@
 
 	mutex_init(&drv_state.lock);
 	shared_pll_control_init();
-	acpuclk_7201_data.switch_time_us = clkdata->acpu_switch_time_us;
-	drv_state.acpu_switch_time_us = clkdata->acpu_switch_time_us;
-	drv_state.max_speed_delta_khz = clkdata->max_speed_delta_khz;
-	drv_state.vdd_switch_time_us = clkdata->vdd_switch_time_us;
-	drv_state.max_axi_khz = clkdata->max_axi_khz;
+	drv_state.max_speed_delta_khz = soc_data->max_speed_delta_khz;
+	drv_state.max_axi_khz = soc_data->max_axi_khz;
 	acpu_freq_tbl_fixup();
 	acpuclk_7201_data.wait_for_irq_khz = find_wait_for_irq_khz();
 	precompute_stepping();
@@ -1094,3 +1090,27 @@
 #endif
 	return 0;
 }
+
+struct acpuclk_soc_data acpuclk_7201_soc_data __initdata = {
+	.max_speed_delta_khz = 400000,
+	.max_axi_khz = 160000,
+	.init = acpuclk_7201_init,
+};
+
+struct acpuclk_soc_data acpuclk_7x27_soc_data __initdata = {
+	.max_speed_delta_khz = 400000,
+	.max_axi_khz = 200000,
+	.init = acpuclk_7201_init,
+};
+
+struct acpuclk_soc_data acpuclk_7x27a_soc_data __initdata = {
+	.max_speed_delta_khz = 400000,
+	.max_axi_khz = 200000,
+	.init = acpuclk_7201_init,
+};
+
+struct acpuclk_soc_data acpuclk_7x27aa_soc_data __initdata = {
+	.max_speed_delta_khz = 504000,
+	.max_axi_khz = 200000,
+	.init = acpuclk_7201_init,
+};
diff --git a/arch/arm/mach-msm/acpuclock-7x30.c b/arch/arm/mach-msm/acpuclock-7x30.c
index 0da4322..24c910e 100644
--- a/arch/arm/mach-msm/acpuclock-7x30.c
+++ b/arch/arm/mach-msm/acpuclock-7x30.c
@@ -56,7 +56,6 @@
 struct clock_state {
 	struct clkctl_acpu_speed	*current_speed;
 	struct mutex			lock;
-	uint32_t			vdd_switch_time_us;
 	struct clk			*ebi1_clk;
 };
 
@@ -139,7 +138,7 @@
 		return ret;
 
 	/* Wait for voltage to stabilize. */
-	udelay(drv_state.vdd_switch_time_us);
+	udelay(62);
 	return 0;
 }
 
@@ -471,15 +470,14 @@
 	.get_rate = acpuclk_7x30_get_rate,
 	.power_collapse_khz = MAX_AXI_KHZ,
 	.wait_for_irq_khz = MAX_AXI_KHZ,
+	.switch_time_us = 50,
 };
 
-int __init acpuclk_7x30_init(struct acpuclk_platform_data *clkdata)
+static int __init acpuclk_7x30_init(struct acpuclk_soc_data *soc_data)
 {
 	pr_info("%s()\n", __func__);
 
 	mutex_init(&drv_state.lock);
-	acpuclk_7x30_data.switch_time_us = clkdata->acpu_switch_time_us;
-	drv_state.vdd_switch_time_us = clkdata->vdd_switch_time_us;
 	pll2_fixup();
 	populate_plls();
 	acpuclk_hw_init();
@@ -489,3 +487,7 @@
 
 	return 0;
 }
+
+struct acpuclk_soc_data acpuclk_7x30_soc_data __initdata = {
+	.init = acpuclk_7x30_init,
+};
diff --git a/arch/arm/mach-msm/acpuclock-8960.c b/arch/arm/mach-msm/acpuclock-8960.c
index 19dbb8a..c63e255 100644
--- a/arch/arm/mach-msm/acpuclock-8960.c
+++ b/arch/arm/mach-msm/acpuclock-8960.c
@@ -1035,7 +1035,7 @@
 	.wait_for_irq_khz = STBY_KHZ,
 };
 
-int __init acpuclk_8960_init(struct acpuclk_platform_data *data)
+static int __init acpuclk_8960_init(struct acpuclk_soc_data *soc_data)
 {
 	if (cpu_is_msm8960()) {
 		scalable = scalable_8960;
@@ -1065,3 +1065,7 @@
 
 	return 0;
 }
+
+struct acpuclk_soc_data acpuclk_8960_soc_data __initdata = {
+	.init = acpuclk_8960_init,
+};
diff --git a/arch/arm/mach-msm/acpuclock-8x50.c b/arch/arm/mach-msm/acpuclock-8x50.c
index be0cf5b..cde5a14 100644
--- a/arch/arm/mach-msm/acpuclock-8x50.c
+++ b/arch/arm/mach-msm/acpuclock-8x50.c
@@ -19,6 +19,7 @@
 #include <linux/errno.h>
 #include <linux/cpufreq.h>
 #include <linux/clk.h>
+#include <linux/mfd/tps65023.h>
 
 #include <mach/board.h>
 #include <mach/msm_iomap.h>
@@ -39,6 +40,12 @@
 #define SCPLL_STATUS_ADDR      (MSM_SCPLL_BASE + 0x18)
 #define SCPLL_FSM_CTL_EXT_ADDR (MSM_SCPLL_BASE + 0x10)
 
+#ifdef CONFIG_QSD_SVS
+#define TPS65023_MAX_DCDC1	1600
+#else
+#define TPS65023_MAX_DCDC1	CONFIG_QSD_PMIC_DEFAULT_DCDC1
+#endif
+
 enum {
 	ACPU_PLL_TCXO	= -1,
 	ACPU_PLL_0	= 0,
@@ -155,8 +162,6 @@
 struct clock_state {
 	struct clkctl_acpu_speed	*current_speed;
 	struct mutex			lock;
-	uint32_t			vdd_switch_time_us;
-	unsigned int			max_vdd;
 	struct clk			*ebi1_clk;
 	int (*acpu_set_vdd) (int mvolts);
 };
@@ -238,7 +243,7 @@
 		regval &= ~(0x7);
 		writel(regval, SCPLL_CTL_ADDR);
 	}
-	udelay(drv_state.vdd_switch_time_us);
+	udelay(62);
 
 	if (state)
 		pr_debug("PLL 3 Enabled\n");
@@ -624,7 +629,6 @@
 
 skip_efuse_fixup:
 	iounmap(ct_csr_base);
-	BUG_ON(drv_state.max_vdd == 0);
 
 	/* pll0_m_val will be 36 when PLL0 is run at 235MHz
 	 * instead of the usual 245MHz. */
@@ -633,7 +637,7 @@
 		PLL0_S->acpuclk_khz = 235930;
 
 	for (i = 0; acpu_freq_tbl[i].acpuclk_khz != 0; i++) {
-		if (acpu_freq_tbl[i].vdd > drv_state.max_vdd) {
+		if (acpu_freq_tbl[i].vdd > TPS65023_MAX_DCDC1) {
 			acpu_freq_tbl[i].acpuclk_khz = 0;
 			break;
 		}
@@ -669,20 +673,41 @@
 }
 #endif
 
+static int qsd8x50_tps65023_set_dcdc1(int mVolts)
+{
+	int rc = 0;
+#ifdef CONFIG_QSD_SVS
+	rc = tps65023_set_dcdc1_level(mVolts);
+	/*
+	 * By default the TPS65023 will be initialized to 1.225V.
+	 * So we can safely switch to any frequency within this
+	 * voltage even if the device is not probed/ready.
+	 */
+	if (rc == -ENODEV && mVolts <= CONFIG_QSD_PMIC_DEFAULT_DCDC1)
+		rc = 0;
+#else
+	/*
+	 * Disallow frequencies not supported in the default PMIC
+	 * output voltage.
+	 */
+	if (mVolts > CONFIG_QSD_PMIC_DEFAULT_DCDC1)
+		rc = -EFAULT;
+#endif
+	return rc;
+}
+
 static struct acpuclk_data acpuclk_8x50_data = {
 	.set_rate = acpuclk_8x50_set_rate,
 	.get_rate = acpuclk_8x50_get_rate,
 	.power_collapse_khz = POWER_COLLAPSE_KHZ,
 	.wait_for_irq_khz = WAIT_FOR_IRQ_KHZ,
+	.switch_time_us = 20,
 };
 
-int __init acpuclk_8x50_init(struct acpuclk_platform_data *clkdata)
+static int __init acpuclk_8x50_init(struct acpuclk_soc_data *soc_data)
 {
 	mutex_init(&drv_state.lock);
-	acpuclk_8x50_data.switch_time_us = clkdata->acpu_switch_time_us;
-	drv_state.vdd_switch_time_us = clkdata->vdd_switch_time_us;
-	drv_state.max_vdd = clkdata->max_vdd;
-	drv_state.acpu_set_vdd = clkdata->acpu_set_vdd;
+	drv_state.acpu_set_vdd = qsd8x50_tps65023_set_dcdc1;
 
 	drv_state.ebi1_clk = clk_get(NULL, "ebi1_acpu_clk");
 	BUG_ON(IS_ERR(drv_state.ebi1_clk));
@@ -710,3 +735,7 @@
 #endif
 	return 0;
 }
+
+struct acpuclk_soc_data acpuclk_8x50_soc_data __initdata = {
+	.init = acpuclk_8x50_init,
+};
diff --git a/arch/arm/mach-msm/acpuclock-8x60.c b/arch/arm/mach-msm/acpuclock-8x60.c
index b7d0589..d28a8bf 100644
--- a/arch/arm/mach-msm/acpuclock-8x60.c
+++ b/arch/arm/mach-msm/acpuclock-8x60.c
@@ -920,7 +920,7 @@
 	.wait_for_irq_khz = MAX_AXI,
 };
 
-int __init acpuclk_8x60_init(struct acpuclk_platform_data *clkdata)
+static int __init acpuclk_8x60_init(struct acpuclk_soc_data *soc_data)
 {
 	unsigned int max_cpu_khz;
 	int cpu;
@@ -948,3 +948,7 @@
 
 	return 0;
 }
+
+struct acpuclk_soc_data acpuclk_8x60_soc_data __initdata = {
+	.init = acpuclk_8x60_init,
+};
diff --git a/arch/arm/mach-msm/acpuclock-fsm9xxx.c b/arch/arm/mach-msm/acpuclock-fsm9xxx.c
index 4acae13..3cdc58d 100644
--- a/arch/arm/mach-msm/acpuclock-fsm9xxx.c
+++ b/arch/arm/mach-msm/acpuclock-fsm9xxx.c
@@ -40,9 +40,13 @@
 	.get_rate = acpuclk_9xxx_get_rate,
 };
 
-int __init acpuclk_9xxx_init(struct acpuclk_platform_data *clkdata)
+static int __init acpuclk_9xxx_init(struct acpuclk_soc_data *soc_data)
 {
 	acpuclk_register(&acpuclk_9xxx_data);
 	pr_info("ACPU running at %lu KHz\n", acpuclk_get_rate(0));
 	return 0;
 }
+
+struct acpuclk_soc_data acpuclk_9xxx_soc_data __initdata = {
+	.init = acpuclk_9xxx_init,
+};
diff --git a/arch/arm/mach-msm/acpuclock.c b/arch/arm/mach-msm/acpuclock.c
index 4aced18..e5a3f8b 100644
--- a/arch/arm/mach-msm/acpuclock.c
+++ b/arch/arm/mach-msm/acpuclock.c
@@ -57,14 +57,14 @@
 	acpuclk_data = data;
 }
 
-int __init acpuclk_init(struct acpuclk_platform_data *pdata)
+int __init acpuclk_init(struct acpuclk_soc_data *soc_data)
 {
 	int rc;
 
-	if (!pdata->init)
+	if (!soc_data->init)
 		return -EINVAL;
 
-	rc = pdata->init(pdata);
+	rc = soc_data->init(soc_data);
 	if (rc)
 		return rc;
 
diff --git a/arch/arm/mach-msm/acpuclock.h b/arch/arm/mach-msm/acpuclock.h
index 4a8bf29..77b47ad 100644
--- a/arch/arm/mach-msm/acpuclock.h
+++ b/arch/arm/mach-msm/acpuclock.h
@@ -31,16 +31,12 @@
 };
 
 /**
- * struct acpuclk_platform_data - Platform data for acpuclk_init()
+ * struct acpuclk_soc_data - SoC data for acpuclk_init()
  */
-struct acpuclk_platform_data {
-	uint32_t acpu_switch_time_us;
+struct acpuclk_soc_data {
 	unsigned long max_speed_delta_khz;
-	uint32_t vdd_switch_time_us;
 	unsigned int max_axi_khz;
-	unsigned int max_vdd;
-	int (*acpu_set_vdd) (int mvolts);
-	int (*init)(struct acpuclk_platform_data *);
+	int (*init)(struct acpuclk_soc_data *);
 };
 
 /**
@@ -100,14 +96,16 @@
  *
  * Return 0 for success.
  */
-int acpuclk_init(struct acpuclk_platform_data *);
+int acpuclk_init(struct acpuclk_soc_data *);
 
 /* SoC-specific acpuclock initialization functions. */
-int acpuclk_7201_init(struct acpuclk_platform_data *);
-int acpuclk_7x30_init(struct acpuclk_platform_data *);
-int acpuclk_8x50_init(struct acpuclk_platform_data *);
-int acpuclk_8x60_init(struct acpuclk_platform_data *);
-int acpuclk_8960_init(struct acpuclk_platform_data *);
-int acpuclk_9xxx_init(struct acpuclk_platform_data *);
-
+extern struct acpuclk_soc_data acpuclk_7x27_soc_data;
+extern struct acpuclk_soc_data acpuclk_7x27a_soc_data;
+extern struct acpuclk_soc_data acpuclk_7x27aa_soc_data;
+extern struct acpuclk_soc_data acpuclk_7201_soc_data;
+extern struct acpuclk_soc_data acpuclk_7x30_soc_data;
+extern struct acpuclk_soc_data acpuclk_8x50_soc_data;
+extern struct acpuclk_soc_data acpuclk_8x60_soc_data;
+extern struct acpuclk_soc_data acpuclk_8960_soc_data;
+extern struct acpuclk_soc_data acpuclk_9xxx_soc_data;
 #endif
diff --git a/arch/arm/mach-msm/board-fsm9xxx.c b/arch/arm/mach-msm/board-fsm9xxx.c
index 9c1e72ff..57eea51 100644
--- a/arch/arm/mach-msm/board-fsm9xxx.c
+++ b/arch/arm/mach-msm/board-fsm9xxx.c
@@ -835,12 +835,6 @@
 	&fsm_xo_device,
 };
 
-static struct acpuclk_platform_data fsm9xxx_clock_data __initdata = {
-	.acpu_switch_time_us = 50,
-	.vdd_switch_time_us = 62,
-	.init = acpuclk_9xxx_init,
-};
-
 static void __init fsm9xxx_init_irq(void)
 {
 	msm_init_irq();
@@ -879,7 +873,7 @@
 		pr_err("%s: socinfo_init() failed!\n",
 		       __func__);
 
-	acpuclk_init(&fsm9xxx_clock_data);
+	acpuclk_init(&acpuclk_9xxx_soc_data);
 
 	regulator_has_full_constraints();
 
diff --git a/arch/arm/mach-msm/board-msm7x27.c b/arch/arm/mach-msm/board-msm7x27.c
index bf1c4b4..2f929e8 100644
--- a/arch/arm/mach-msm/board-msm7x27.c
+++ b/arch/arm/mach-msm/board-msm7x27.c
@@ -1489,14 +1489,6 @@
 	msm_init_irq();
 }
 
-static struct acpuclk_platform_data msm7x2x_clock_data __initdata = {
-	.acpu_switch_time_us = 50,
-	.max_speed_delta_khz = 400000,
-	.vdd_switch_time_us = 62,
-	.max_axi_khz = 160000,
-	.init = acpuclk_7201_init,
-};
-
 void msm_serial_debug_init(unsigned int base, int irq,
 			   struct device *clk_device, int signal_irq);
 
@@ -1892,11 +1884,10 @@
 		}
 	}
 #endif
-
 	if (cpu_is_msm7x27())
-		msm7x2x_clock_data.max_axi_khz = 200000;
-
-	acpuclk_init(&msm7x2x_clock_data);
+		acpuclk_init(&acpuclk_7x27_soc_data);
+	else
+		acpuclk_init(&acpuclk_7201_soc_data);
 
 	usb_mpp_init();
 
diff --git a/arch/arm/mach-msm/board-msm7x30.c b/arch/arm/mach-msm/board-msm7x30.c
index edebbd8..79279af 100644
--- a/arch/arm/mach-msm/board-msm7x30.c
+++ b/arch/arm/mach-msm/board-msm7x30.c
@@ -5524,12 +5524,6 @@
 };
 #endif
 
-static struct acpuclk_platform_data msm7x30_clock_data __initdata = {
-	.acpu_switch_time_us = 50,
-	.vdd_switch_time_us = 62,
-	.init = acpuclk_7x30_init,
-};
-
 static void __init msm7x30_init_irq(void)
 {
 	msm_init_irq();
@@ -6955,7 +6949,7 @@
 	msm7x30_init_uart2();
 #endif
 	msm_spm_init(&msm_spm_data, 1);
-	acpuclk_init(&msm7x30_clock_data);
+	acpuclk_init(&acpuclk_7x30_soc_data);
 	if (machine_is_msm7x30_surf() || machine_is_msm7x30_fluid())
 		msm7x30_cfg_smsc911x();
 
diff --git a/arch/arm/mach-msm/board-msm8960.c b/arch/arm/mach-msm/board-msm8960.c
index a135037..a4242bf 100644
--- a/arch/arm/mach-msm/board-msm8960.c
+++ b/arch/arm/mach-msm/board-msm8960.c
@@ -1931,12 +1931,6 @@
 	return 0;
 }
 
-static struct acpuclk_platform_data msm8960_acpuclk_data __initdata = {
-	.acpu_switch_time_us = 0,
-	.vdd_switch_time_us = 0,
-	.init = acpuclk_8960_init,
-};
-
 #define MSM_SHARED_RAM_PHYS 0x80000000
 
 static struct pm8921_adc_amux pm8921_adc_channels_data[] = {
@@ -3512,7 +3506,7 @@
 	platform_add_devices(common_devices, ARRAY_SIZE(common_devices));
 	pm8921_gpio_mpp_init();
 	platform_add_devices(sim_devices, ARRAY_SIZE(sim_devices));
-	acpuclk_init(&msm8960_acpuclk_data);
+	acpuclk_init(&acpuclk_8960_soc_data);
 
 	msm8960_device_qup_spi_gsbi1.dev.platform_data =
 				&msm8960_qup_spi_gsbi1_pdata;
@@ -3603,7 +3597,7 @@
 	platform_add_devices(cdp_devices, ARRAY_SIZE(cdp_devices));
 	msm8960_init_cam();
 	msm8960_init_mmc();
-	acpuclk_init(&msm8960_acpuclk_data);
+	acpuclk_init(&acpuclk_8960_soc_data);
 	register_i2c_devices();
 	msm8960_wcnss_init();
 	msm_fb_add_devices();
diff --git a/arch/arm/mach-msm/board-msm8x60.c b/arch/arm/mach-msm/board-msm8x60.c
index 792f42b..2923b99 100644
--- a/arch/arm/mach-msm/board-msm8x60.c
+++ b/arch/arm/mach-msm/board-msm8x60.c
@@ -398,10 +398,6 @@
 	},
 };
 
-static struct acpuclk_platform_data msm8x60_acpuclk_data __initdata = {
-	.init = acpuclk_8x60_init,
-};
-
 /*
  * Consumer specific regulator names:
  *			 regulator name		consumer dev_name
@@ -10060,7 +10056,7 @@
 	platform_add_devices(early_devices, ARRAY_SIZE(early_devices));
 	/* CPU frequency control is not supported on simulated targets. */
 	if (!machine_is_msm8x60_rumi3() && !machine_is_msm8x60_sim())
-		acpuclk_init(&msm8x60_acpuclk_data);
+		acpuclk_init(&acpuclk_8x60_soc_data);
 
 	/* No EBI2 on 8660 charm targets */
 	if (!machine_is_msm8x60_fusion() && !machine_is_msm8x60_fusn_ffa())
diff --git a/arch/arm/mach-msm/board-qsd8x50.c b/arch/arm/mach-msm/board-qsd8x50.c
index c99dc6d..30e5cdb 100644
--- a/arch/arm/mach-msm/board-qsd8x50.c
+++ b/arch/arm/mach-msm/board-qsd8x50.c
@@ -20,7 +20,6 @@
 #include <linux/i2c.h>
 #include <linux/spi/spi.h>
 #include <linux/delay.h>
-#include <linux/mfd/tps65023.h>
 #include <linux/bma150.h>
 #include <linux/power_supply.h>
 #include <linux/clk.h>
@@ -1213,43 +1212,6 @@
 #endif /* defined(CONFIG_TSIF) || defined(CONFIG_TSIF_MODULE) */
 /* TSIF end   */
 
-#ifdef CONFIG_QSD_SVS
-#define TPS65023_MAX_DCDC1	1600
-#else
-#define TPS65023_MAX_DCDC1	CONFIG_QSD_PMIC_DEFAULT_DCDC1
-#endif
-
-static int qsd8x50_tps65023_set_dcdc1(int mVolts)
-{
-	int rc = 0;
-#ifdef CONFIG_QSD_SVS
-	rc = tps65023_set_dcdc1_level(mVolts);
-	/* By default the TPS65023 will be initialized to 1.225V.
-	 * So we can safely switch to any frequency within this
-	 * voltage even if the device is not probed/ready.
-	 */
-	if (rc == -ENODEV && mVolts <= CONFIG_QSD_PMIC_DEFAULT_DCDC1)
-		rc = 0;
-#else
-	/* Disallow frequencies not supported in the default PMIC
-	 * output voltage.
-	 */
-	if (mVolts > CONFIG_QSD_PMIC_DEFAULT_DCDC1)
-		rc = -EFAULT;
-#endif
-	return rc;
-}
-
-static struct acpuclk_platform_data qsd8x50_clock_data __initdata = {
-	.acpu_switch_time_us = 20,
-	.max_speed_delta_khz = 256000,
-	.vdd_switch_time_us = 62,
-	.max_vdd = TPS65023_MAX_DCDC1,
-	.acpu_set_vdd = qsd8x50_tps65023_set_dcdc1,
-	.init = acpuclk_8x50_init,
-};
-
-
 static void touchpad_gpio_release(void)
 {
 	gpio_free(TOUCHPAD_IRQ);
@@ -2444,7 +2406,7 @@
 		       __func__);
 	msm_clock_init(&qds8x50_clock_init_data);
 	qsd8x50_cfg_smc91x();
-	acpuclk_init(&qsd8x50_clock_data);
+	acpuclk_init(&acpuclk_8x50_soc_data);
 
 	msm_hsusb_pdata.swfi_latency =
 		msm_pm_data
diff --git a/arch/arm/mach-msm/devices-msm7x27a.c b/arch/arm/mach-msm/devices-msm7x27a.c
index fe40248..a95dc97 100644
--- a/arch/arm/mach-msm/devices-msm7x27a.c
+++ b/arch/arm/mach-msm/devices-msm7x27a.c
@@ -695,24 +695,17 @@
 	.id     = 0,
 };
 
-static struct acpuclk_platform_data msm7x2x_clock_data __initdata = {
-	.acpu_switch_time_us = 50,
-	.max_speed_delta_khz = 400000,
-	.vdd_switch_time_us = 62,
-	.max_axi_khz = 200000,
-	.init = acpuclk_7201_init,
-};
-
 int __init msm7x2x_misc_init(void)
 {
 	if (socinfo_init() < 0)
 		pr_err("%s: socinfo_init() failed!\n", __func__);
 
-	if (cpu_is_msm7x27aa())
-		msm7x2x_clock_data.max_speed_delta_khz = 504000;
-
 	msm_clock_init(&msm7x27a_clock_init_data);
-	acpuclk_init(&msm7x2x_clock_data);
+	if (cpu_is_msm7x27aa())
+		acpuclk_init(&acpuclk_7x27aa_soc_data);
+	else
+		acpuclk_init(&acpuclk_7x27a_soc_data);
+
 
 	return 0;
 }