summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorGary Zhang <b13634@freescale.com>2012-07-11 10:15:42 +0800
committerTerry Lv <r65388@freescale.com>2012-07-25 13:10:49 +0800
commit30293bc62550ebc14bb3848c5f9c326f7e792e69 (patch)
tree191701d86dfebe8f777c24963e460cab51a30381 /sound
parentd53c7d0707ffc5b594b725e5140c880fc409f20e (diff)
ENGR00209905 WM8962: support for continuously playback diff sample bit streams
support for continuously playback different sample bit audio streams with -Dplughw:0,0 option such as the command: 'aplay -Dplughw:0,0 16bit.wav 24bit.wav' before prohibit reenter hw_params, now remove this limitation to support this feature. Signed-off-by: Gary Zhang <b13634@freescale.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/wm8962.c6
-rw-r--r--sound/soc/imx/imx-wm8962.c7
2 files changed, 2 insertions, 11 deletions
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index 2f5ce28d70a0..190720ec029d 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -3159,9 +3159,6 @@ static int wm8962_hw_params(struct snd_pcm_substream *substream,
int aif0 = 0;
int adctl3 = 0;
- if (codec->dapm.bias_level != SND_SOC_BIAS_OFF)
- return 0;
-
wm8962->bclk = snd_soc_params_to_bclk(params);
if (params_channels(params) == 1)
wm8962->bclk *= 2;
@@ -3463,9 +3460,6 @@ static int wm8962_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
if (fll_div.theta || fll_div.lambda)
fll1 |= WM8962_FLL_FRAC;
- /* Stop the FLL while we reconfigure */
- snd_soc_update_bits(codec, WM8962_FLL_CONTROL_1, WM8962_FLL_ENA, 0);
-
snd_soc_update_bits(codec, WM8962_FLL_CONTROL_2,
WM8962_FLL_OUTDIV_MASK |
WM8962_FLL_REFCLK_DIV_MASK,
diff --git a/sound/soc/imx/imx-wm8962.c b/sound/soc/imx/imx-wm8962.c
index aa3122f6d765..76299a659b41 100644
--- a/sound/soc/imx/imx-wm8962.c
+++ b/sound/soc/imx/imx-wm8962.c
@@ -98,9 +98,6 @@ static int imx_hifi_hw_params(struct snd_pcm_substream *substream,
u32 dai_format;
unsigned int pll_out;
- if (codec->dapm.bias_level != SND_SOC_BIAS_OFF)
- return 0;
-
dai_format = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
SND_SOC_DAIFMT_CBM_CFM;
@@ -128,8 +125,8 @@ static int imx_hifi_hw_params(struct snd_pcm_substream *substream,
else
pll_out = sample_rate * 256;
- ret = snd_soc_dai_set_pll(codec_dai, WM8962_FLL_MCLK,
- WM8962_FLL_MCLK, priv->sysclk,
+ ret = snd_soc_dai_set_pll(codec_dai, WM8962_FLL_OSC,
+ WM8962_FLL_OSC, priv->sysclk,
pll_out);
if (ret < 0)
pr_err("Failed to start FLL: %d\n", ret);