summaryrefslogtreecommitdiffstats
path: root/sound/soc
diff options
context:
space:
mode:
authorMark Brown2011-07-04 17:54:40 +0200
committerMark Brown2011-07-04 17:54:40 +0200
commit469bb638dc2a6ea87ea56256f25cc964deb3cf2b (patch)
tree882c6a76805a4f705d5a29ff58c71f93ede4b395 /sound/soc
parentASoC: Tegra: I2S: s/clk_get_sys/clk_get/ (diff)
parentASoC: Ensure we delay long enough for WM8994 FLL to lock when starting (diff)
downloadkernel-qcow2-linux-469bb638dc2a6ea87ea56256f25cc964deb3cf2b.tar.gz
kernel-qcow2-linux-469bb638dc2a6ea87ea56256f25cc964deb3cf2b.tar.xz
kernel-qcow2-linux-469bb638dc2a6ea87ea56256f25cc964deb3cf2b.zip
Merge branch 'for-3.0' into for-3.1
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/codecs/wm8994.c2
-rw-r--r--sound/soc/tegra/tegra_i2s.c6
2 files changed, 8 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
index dc2350e6350b..70a68fd96c46 100644
--- a/sound/soc/codecs/wm8994.c
+++ b/sound/soc/codecs/wm8994.c
@@ -1713,6 +1713,8 @@ static int _wm8994_set_fll(struct snd_soc_codec *codec, int id, int src,
snd_soc_update_bits(codec, WM8994_FLL1_CONTROL_1 + reg_offset,
WM8994_FLL1_ENA | WM8994_FLL1_FRAC,
reg);
+
+ msleep(5);
}
wm8994->fll[id].in = freq_in;
diff --git a/sound/soc/tegra/tegra_i2s.c b/sound/soc/tegra/tegra_i2s.c
index 2e5685512db0..f36b9969cfec 100644
--- a/sound/soc/tegra/tegra_i2s.c
+++ b/sound/soc/tegra/tegra_i2s.c
@@ -222,12 +222,18 @@ static int tegra_i2s_hw_params(struct snd_pcm_substream *substream,
if (i2sclock % (2 * srate))
reg |= TEGRA_I2S_TIMING_NON_SYM_ENABLE;
+ if (!i2s->clk_refs)
+ clk_enable(i2s->clk_i2s);
+
tegra_i2s_write(i2s, TEGRA_I2S_TIMING, reg);
tegra_i2s_write(i2s, TEGRA_I2S_FIFO_SCR,
TEGRA_I2S_FIFO_SCR_FIFO2_ATN_LVL_FOUR_SLOTS |
TEGRA_I2S_FIFO_SCR_FIFO1_ATN_LVL_FOUR_SLOTS);
+ if (!i2s->clk_refs)
+ clk_disable(i2s->clk_i2s);
+
return 0;
}