ASoC: UDA1380: DATAI is slave only
authorPhilipp Zabel <philipp.zabel@gmail.com>
Tue, 3 Mar 2009 15:10:52 +0000 (16:10 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 3 Mar 2009 15:58:51 +0000 (15:58 +0000)
Only allow SND_SOC_DAIFMT_CBS_CFS for the playback DAI.

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/uda1380.c

index 1c9d2a75addb526ea3ed20445351ab92e87d7397..1b10f488328c015479c65393071a01ed4f4b85b2 100644 (file)
@@ -399,8 +399,9 @@ static int uda1380_set_dai_fmt_both(struct snd_soc_dai *codec_dai,
                iface |= R01_SFORI_MSB | R01_SFORO_MSB;
        }
 
-       if ((fmt & SND_SOC_DAIFMT_MASTER_MASK) == SND_SOC_DAIFMT_CBM_CFM)
-               iface |= R01_SIM;
+       /* DATAI is slave only, so in single-link mode, this has to be slave */
+       if ((fmt & SND_SOC_DAIFMT_MASTER_MASK) != SND_SOC_DAIFMT_CBS_CFS)
+               return -EINVAL;
 
        uda1380_write(codec, UDA1380_IFACE, iface);
 
@@ -428,6 +429,10 @@ static int uda1380_set_dai_fmt_playback(struct snd_soc_dai *codec_dai,
                iface |= R01_SFORI_MSB;
        }
 
+       /* DATAI is slave only, so this has to be slave */
+       if ((fmt & SND_SOC_DAIFMT_MASTER_MASK) != SND_SOC_DAIFMT_CBS_CFS)
+               return -EINVAL;
+
        uda1380_write(codec, UDA1380_IFACE, iface);
 
        return 0;