| From 3a340104fad6ecbea5ad6792a2ea855f0507a6e0 Mon Sep 17 00:00:00 2001 |
| From: Axel Lin <axel.lin@gmail.com> |
| Date: Mon, 17 Oct 2011 20:14:56 +0800 |
| Subject: ASoC: wm8741: Fix setting interface format for DSP modes |
| |
| From: Axel Lin <axel.lin@gmail.com> |
| |
| commit 3a340104fad6ecbea5ad6792a2ea855f0507a6e0 upstream. |
| |
| According to the datasheet: |
| Format Control (05h) |
| BITS[3:2] |
| FMT[1:0] Audio data format selection |
| 00 = right justified mode |
| 01 = left justified mode |
| 10 = I2S mode |
| 11 = DSP mode |
| BIT[4] LRP Polarity selec for LRCLK/DSP mode select |
| 0 = normal LRCLK poalrity/DSP mode A |
| 1 = inverted LRCLK poarity/DSP mode B |
| |
| For SND_SOC_DAIFMT_DSP_A, we should set 0x000C instead of 0x0003. |
| For SND_SOC_DAIFMT_DSP_B, we should set 0x001C instead of 0x0013. |
| |
| Signed-off-by: Axel Lin <axel.lin@gmail.com> |
| Acked-by: Liam Girdwood <lrg@ti.com> |
| Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| sound/soc/codecs/wm8741.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/sound/soc/codecs/wm8741.c |
| +++ b/sound/soc/codecs/wm8741.c |
| @@ -337,10 +337,10 @@ static int wm8741_set_dai_fmt(struct snd |
| iface |= 0x0004; |
| break; |
| case SND_SOC_DAIFMT_DSP_A: |
| - iface |= 0x0003; |
| + iface |= 0x000C; |
| break; |
| case SND_SOC_DAIFMT_DSP_B: |
| - iface |= 0x0013; |
| + iface |= 0x001C; |
| break; |
| default: |
| return -EINVAL; |