From 91011f3240e8a63a751ba68101947f9ab83aae2f Mon Sep 17 00:00:00 2001 From: Dong Aisheng Date: Fri, 20 Jul 2012 17:20:25 +0800 Subject: [PATCH] --- yaml --- r: 321353 b: refs/heads/master c: d0ba4c014934cb56f1eabb481ff8026b6d49d33c h: refs/heads/master i: 321351: 992cf5794f3f3774279231b31dd5a460940219dc v: v3 --- [refs] | 2 +- trunk/sound/soc/mxs/mxs-saif.c | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index e106db91566c..60e5ec946622 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c2e1d9073fc98f471067c0257a31b4818306ebe1 +refs/heads/master: d0ba4c014934cb56f1eabb481ff8026b6d49d33c diff --git a/trunk/sound/soc/mxs/mxs-saif.c b/trunk/sound/soc/mxs/mxs-saif.c index fdbb36aa9cf5..b3030718c228 100644 --- a/trunk/sound/soc/mxs/mxs-saif.c +++ b/trunk/sound/soc/mxs/mxs-saif.c @@ -427,8 +427,22 @@ static int mxs_saif_hw_params(struct snd_pcm_substream *substream, /* prepare clk in hw_param, enable in trigger */ clk_prepare(saif->clk); - if (saif != master_saif) + if (saif != master_saif) { + /* + * Set an initial clock rate for the saif internal logic to work + * properly. This is important when working in EXTMASTER mode + * that uses the other saif's BITCLK&LRCLK but it still needs a + * basic clock which should be fast enough for the internal + * logic. + */ + clk_enable(saif->clk); + ret = clk_set_rate(saif->clk, 24000000); + clk_disable(saif->clk); + if (ret) + return ret; + clk_prepare(master_saif->clk); + } scr = __raw_readl(saif->base + SAIF_CTRL);