msm: acpuclock-9615: Prepare PLLs during init
The new clk_prepare()/clk_unprepare() APIs need to be called from
non-atomic context. Since acpuclock is used in such places as
suspend/resume which is always in atomic context we must prepare
the PLLs during init or risk the chance of enabling a PLL that
isn't prepared.
Change-Id: I3106b1ab38ec1eb0f2133878dc03d1a1a3e8b85d
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
diff --git a/arch/arm/mach-msm/acpuclock-9615.c b/arch/arm/mach-msm/acpuclock-9615.c
index 35eb52b..8882f41 100644
--- a/arch/arm/mach-msm/acpuclock-9615.c
+++ b/arch/arm/mach-msm/acpuclock-9615.c
@@ -323,6 +323,11 @@
if (clocks[i].name) {
clocks[i].clk = clk_get_sys("acpu", clocks[i].name);
BUG_ON(IS_ERR(clocks[i].clk));
+ /*
+ * Prepare the PLLs because we enable/disable them
+ * in atomic context during power collapse/restore.
+ */
+ BUG_ON(clk_prepare(clocks[i].clk));
}
}