Support bitwidth change in IV data
[tas2770sw-android/tas2770sw-android.git] / tas2770-codec.c
index 5e34d07ac7c76924f2753d9509db972e2ef78872..1e4e852969d68c5ef37128e5396c0a8574de207f 100644 (file)
@@ -250,6 +250,7 @@ static int tas2770_set_bitwidth(struct tas2770_priv *pTAS2770, int bitwidth)
                        /* If machine driver did not call set slot width */
                        if (pTAS2770->mnSlot_width == 0)
                                tas2770_set_slot(pTAS2770->codec, 16);
+               pTAS2770->mnVmon_slot_no = pTAS2770->mnImon_slot_no + 2;
                break;
        case SNDRV_PCM_FORMAT_S24_LE:
                        snd_soc_update_bits(pTAS2770->codec,
@@ -258,6 +259,7 @@ static int tas2770_set_bitwidth(struct tas2770_priv *pTAS2770, int bitwidth)
                        TAS2770_TDMConfigurationReg2_RXWLEN32_24Bits);
                        if (pTAS2770->mnSlot_width == 0)
                                tas2770_set_slot(pTAS2770->codec, 32);
+               pTAS2770->mnVmon_slot_no = pTAS2770->mnImon_slot_no + 4;
                break;
        case SNDRV_PCM_FORMAT_S32_LE:
                        snd_soc_update_bits(pTAS2770->codec,
@@ -266,6 +268,7 @@ static int tas2770_set_bitwidth(struct tas2770_priv *pTAS2770, int bitwidth)
                        TAS2770_TDMConfigurationReg2_RXWLEN32_32Bits);
                        if (pTAS2770->mnSlot_width == 0)
                                tas2770_set_slot(pTAS2770->codec, 32);
+               pTAS2770->mnVmon_slot_no = pTAS2770->mnImon_slot_no + 4;
                break;
 
        default: