diff options
| -rw-r--r-- | sound/soc/codecs/tlv320aic3x.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c index 05336ed7e493..cff276ee261e 100644 --- a/sound/soc/codecs/tlv320aic3x.c +++ b/sound/soc/codecs/tlv320aic3x.c | |||
| @@ -863,17 +863,21 @@ static int aic3x_set_dai_fmt(struct snd_soc_dai *codec_dai, | |||
| 863 | return -EINVAL; | 863 | return -EINVAL; |
| 864 | } | 864 | } |
| 865 | 865 | ||
| 866 | /* interface format */ | 866 | /* |
| 867 | switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { | 867 | * match both interface format and signal polarities since they |
| 868 | case SND_SOC_DAIFMT_I2S: | 868 | * are fixed |
| 869 | */ | ||
| 870 | switch (fmt & (SND_SOC_DAIFMT_FORMAT_MASK | | ||
| 871 | SND_SOC_DAIFMT_INV_MASK)) { | ||
| 872 | case (SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF): | ||
| 869 | break; | 873 | break; |
| 870 | case SND_SOC_DAIFMT_DSP_A: | 874 | case (SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_IB_NF): |
| 871 | iface_breg |= (0x01 << 6); | 875 | iface_breg |= (0x01 << 6); |
| 872 | break; | 876 | break; |
| 873 | case SND_SOC_DAIFMT_RIGHT_J: | 877 | case (SND_SOC_DAIFMT_RIGHT_J | SND_SOC_DAIFMT_NB_NF): |
| 874 | iface_breg |= (0x02 << 6); | 878 | iface_breg |= (0x02 << 6); |
| 875 | break; | 879 | break; |
| 876 | case SND_SOC_DAIFMT_LEFT_J: | 880 | case (SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_NB_NF): |
| 877 | iface_breg |= (0x03 << 6); | 881 | iface_breg |= (0x03 << 6); |
| 878 | break; | 882 | break; |
| 879 | default: | 883 | default: |
