ASoC: wm8974: remove unsupported clock mode
authorPuyou Lu <puyou.lu@gmail.com>
Thu, 2 Jul 2020 02:30:56 +0000 (10:30 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 9 Jul 2020 18:55:28 +0000 (19:55 +0100)
In DSP_A mode, BIT7 of IFACE should bit 0 according to datasheet (ie.
inverted frame clock is not support in this mode).

Signed-off-by: Puyou Lu <puyou.lu@gmail.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/1593657056-4989-1-git-send-email-puyou.lu@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wm8974.c

index 764bf93..7cfc896 100644 (file)
@@ -474,6 +474,10 @@ static int wm8974_set_dai_fmt(struct snd_soc_dai *codec_dai,
                iface |= 0x0008;
                break;
        case SND_SOC_DAIFMT_DSP_A:
+               if ((fmt & SND_SOC_DAIFMT_INV_MASK) == SND_SOC_DAIFMT_IB_IF ||
+                   (fmt & SND_SOC_DAIFMT_INV_MASK) == SND_SOC_DAIFMT_NB_IF) {
+                       return -EINVAL;
+               }
                iface |= 0x00018;
                break;
        default: