ASoC: mc13783: Update set_tdm_slot() semantics
authorLars-Peter Clausen <lars@metafoo.de>
Mon, 12 Jan 2015 09:27:17 +0000 (10:27 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 14 Jan 2015 19:04:38 +0000 (19:04 +0000)
The mc13783 driver uses inverted semantics for the tx_mask and rx_mask
parameter of the set_tdm_slot() callback compared to rest of ASoC. This
patch updates the driver's semantics to be consistent with the rest of ASoC,
i.e. a set bit means a active slot and a cleared bit means a inactive slot.
This will allow us to use the set_tdm_slot() API in a more generic way.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/mc13783.c
sound/soc/fsl/imx-mc13783.c

index c1e441c2c8af5326b3125188fd4ecf19f0b740e1..2ffb9a0570dc8db3625cc8224f034995ea88d7dd 100644 (file)
@@ -328,16 +328,16 @@ static int mc13783_set_tdm_slot_dac(struct snd_soc_dai *dai,
        }
 
        switch (rx_mask) {
-       case 0xfffffffc:
+       case 0x03:
                val |= SSI_NETWORK_DAC_RXSLOT_0_1;
                break;
-       case 0xfffffff3:
+       case 0x0c:
                val |= SSI_NETWORK_DAC_RXSLOT_2_3;
                break;
-       case 0xffffffcf:
+       case 0x30:
                val |= SSI_NETWORK_DAC_RXSLOT_4_5;
                break;
-       case 0xffffff3f:
+       case 0xc0:
                val |= SSI_NETWORK_DAC_RXSLOT_6_7;
                break;
        default:
@@ -360,7 +360,7 @@ static int mc13783_set_tdm_slot_codec(struct snd_soc_dai *dai,
        if (slots != 4)
                return -EINVAL;
 
-       if (tx_mask != 0xfffffffc)
+       if (tx_mask != 0x3)
                return -EINVAL;
 
        val |= (0x00 << 2);     /* primary timeslot RX/TX(?) is 0 */
index 6bf5bce01a92124cbf8e84eeb67157fa8727a0f4..9589452e995e10575c435c98872b3ee5b1a1a4e1 100644 (file)
@@ -37,8 +37,7 @@ static int imx_mc13783_hifi_hw_params(struct snd_pcm_substream *substream,
        struct snd_soc_dai *codec_dai = rtd->codec_dai;
        int ret;
 
-       ret = snd_soc_dai_set_tdm_slot(codec_dai, 0xfffffffc, 0xfffffffc,
-                                       4, 16);
+       ret = snd_soc_dai_set_tdm_slot(codec_dai, 0x3, 0x3, 4, 16);
        if (ret)
                return ret;