Commit 4b7d283150b35db6e5e10f72606f603ff424c92a

Authored by Jarkko Nikula
Committed by Takashi Iwai
1 parent da6320becf

ALSA: ASoC: tlv320aic3x: Fix DSP DAI format and signal polarities matching

- Codec doesn't support to configure bit clock and frame sync polarities
- Codec doesn't support DSP_A format but DSP_B with inverted bit clock
  polarity
- Match also other formats with their signal polarities

Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

Showing 1 changed file with 10 additions and 6 deletions Side-by-side Diff

sound/soc/codecs/tlv320aic3x.c
... ... @@ -863,17 +863,21 @@
863 863 return -EINVAL;
864 864 }
865 865  
866   - /* interface format */
867   - switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
868   - case SND_SOC_DAIFMT_I2S:
  866 + /*
  867 + * match both interface format and signal polarities since they
  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 873 break;
870   - case SND_SOC_DAIFMT_DSP_A:
  874 + case (SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_IB_NF):
871 875 iface_breg |= (0x01 << 6);
872 876 break;
873   - case SND_SOC_DAIFMT_RIGHT_J:
  877 + case (SND_SOC_DAIFMT_RIGHT_J | SND_SOC_DAIFMT_NB_NF):
874 878 iface_breg |= (0x02 << 6);
875 879 break;
876   - case SND_SOC_DAIFMT_LEFT_J:
  880 + case (SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_NB_NF):
877 881 iface_breg |= (0x03 << 6);
878 882 break;
879 883 default: