mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
da6320becf
commit
4b7d283150
|
@ -863,17 +863,21 @@ static int aic3x_set_dai_fmt(struct snd_soc_dai *codec_dai,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* interface format */
|
||||
switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
|
||||
case SND_SOC_DAIFMT_I2S:
|
||||
/*
|
||||
* match both interface format and signal polarities since they
|
||||
* are fixed
|
||||
*/
|
||||
switch (fmt & (SND_SOC_DAIFMT_FORMAT_MASK |
|
||||
SND_SOC_DAIFMT_INV_MASK)) {
|
||||
case (SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF):
|
||||
break;
|
||||
case SND_SOC_DAIFMT_DSP_A:
|
||||
case (SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_IB_NF):
|
||||
iface_breg |= (0x01 << 6);
|
||||
break;
|
||||
case SND_SOC_DAIFMT_RIGHT_J:
|
||||
case (SND_SOC_DAIFMT_RIGHT_J | SND_SOC_DAIFMT_NB_NF):
|
||||
iface_breg |= (0x02 << 6);
|
||||
break;
|
||||
case SND_SOC_DAIFMT_LEFT_J:
|
||||
case (SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_NB_NF):
|
||||
iface_breg |= (0x03 << 6);
|
||||
break;
|
||||
default:
|
||||
|
|
Loading…
Reference in New Issue