| From 04c57163c8edfbc50e022737014069998ba4fc5f Mon Sep 17 00:00:00 2001 |
| From: Axel Lin <axel.lin@gmail.com> |
| Date: Fri, 28 Oct 2011 11:08:01 +0800 |
| Subject: ASoC: wm8711: Fix wrong mask for setting input audio data bit length select |
| |
| From: Axel Lin <axel.lin@gmail.com> |
| |
| commit 04c57163c8edfbc50e022737014069998ba4fc5f upstream. |
| |
| The Input Audio Data Bit Length Select is controlled by BIT[3:2] of |
| WM8711_IFACE(07h) register. |
| Current code incorrectly masks BIT[1:0] which is for Audio Data Format Select. |
| |
| Signed-off-by: Axel Lin <axel.lin@gmail.com> |
| Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| sound/soc/codecs/wm8711.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/sound/soc/codecs/wm8711.c |
| +++ b/sound/soc/codecs/wm8711.c |
| @@ -150,7 +150,7 @@ static int wm8711_hw_params(struct snd_p |
| { |
| struct snd_soc_codec *codec = dai->codec; |
| struct wm8711_priv *wm8711 = snd_soc_codec_get_drvdata(codec); |
| - u16 iface = snd_soc_read(codec, WM8711_IFACE) & 0xfffc; |
| + u16 iface = snd_soc_read(codec, WM8711_IFACE) & 0xfff3; |
| int i = get_coeff(wm8711->sysclk, params_rate(params)); |
| u16 srate = (coeff_div[i].sr << 2) | |
| (coeff_div[i].bosr << 1) | coeff_div[i].usb; |