summaryrefslogtreecommitdiff
path: root/arch/arm/mach-imx/busfreq-imx6.c
diff options
context:
space:
mode:
authorRanjani Vaidyanathan <ra5478@freescale.com>2013-11-05 14:44:20 -0600
committerNitin Garg <nitin.garg@freescale.com>2014-08-27 18:06:24 -0500
commit5e6e550c67d353c07ce33369fc0c1f92c554e9f0 (patch)
tree3fa28b3d8ccd46a68cbadca65ccd4f46af07ec44 /arch/arm/mach-imx/busfreq-imx6.c
parent90e6a9a83f47b98d4b262aa34aa516b4bbc75947 (diff)
ENGR00286345 [iMX6DL] Fixed random hang bug in bus freq driver
Incorrect clock disable of PLL2 caused random hangs during DDR freq change in iMX6DL. Remove PERCLK freq change code as this is not required for TO1.1 and later. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
Diffstat (limited to 'arch/arm/mach-imx/busfreq-imx6.c')
-rw-r--r--arch/arm/mach-imx/busfreq-imx6.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/arm/mach-imx/busfreq-imx6.c b/arch/arm/mach-imx/busfreq-imx6.c
index a32b1d25fbc1..bc9265293477 100644
--- a/arch/arm/mach-imx/busfreq-imx6.c
+++ b/arch/arm/mach-imx/busfreq-imx6.c
@@ -48,7 +48,8 @@
#include "hardware.h"
#define LPAPM_CLK 24000000
-#define DDR_AUDIO_CLK 100000000
+#define DDR3_AUDIO_CLK 50000000
+#define LPDDR2_AUDIO_CLK 100000000
int high_bus_freq_mode;
int med_bus_freq_mode;
@@ -114,7 +115,7 @@ static void enter_lpm_imx6sl(void)
if (audio_bus_count) {
/* Set up DDR to 100MHz. */
spin_lock_irqsave(&freq_lock, flags);
- update_lpddr2_freq(DDR_AUDIO_CLK);
+ update_lpddr2_freq(LPDDR2_AUDIO_CLK);
spin_unlock_irqrestore(&freq_lock, flags);
/* Fix the clock tree in kernel */
@@ -245,7 +246,7 @@ int reduce_bus_freq(void)
if (audio_bus_count) {
/* Need to ensure that PLL2_PFD_400M is kept ON. */
clk_prepare_enable(pll2_400);
- update_ddr_freq(DDR_AUDIO_CLK);
+ update_ddr_freq(DDR3_AUDIO_CLK);
/* Make sure periph clk's parent also got updated */
ret = clk_set_parent(periph_clk2_sel, pll3);
if (ret)
@@ -283,9 +284,6 @@ int reduce_bus_freq(void)
low_bus_freq_mode = 1;
audio_bus_freq_mode = 0;
}
- if (high_bus_freq_mode && cpu_is_imx6dl())
- clk_disable_unprepare(pll2_400);
-
}
clk_disable_unprepare(pll3);