aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/omap/mcbsp.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/soc/omap/mcbsp.c b/sound/soc/omap/mcbsp.c
index d7167932113a..21dbb0532bca 100644
--- a/sound/soc/omap/mcbsp.c
+++ b/sound/soc/omap/mcbsp.c
@@ -548,6 +548,16 @@ void omap_mcbsp_free(struct omap_mcbsp *mcbsp)
548 548
549 reg_cache = mcbsp->reg_cache; 549 reg_cache = mcbsp->reg_cache;
550 550
551 /*
552 * Select CLKS source from internal source unconditionally before
553 * marking the McBSP port as free.
554 * If the external clock source via MCBSP_CLKS pin has been selected the
555 * system will refuse to enter idle if the CLKS pin source is not reset
556 * back to internal source.
557 */
558 if (!cpu_class_is_omap1())
559 omap2_mcbsp_set_clks_src(mcbsp, MCBSP_CLKS_PRCM_SRC);
560
551 spin_lock(&mcbsp->lock); 561 spin_lock(&mcbsp->lock);
552 if (mcbsp->free) 562 if (mcbsp->free)
553 dev_err(mcbsp->dev, "McBSP%d was not reserved\n", mcbsp->id); 563 dev_err(mcbsp->dev, "McBSP%d was not reserved\n", mcbsp->id);