diff options
Diffstat (limited to 'sound/soc/omap')
-rw-r--r-- | sound/soc/omap/mcbsp.c | 10 |
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); |