|
@@ -395,6 +395,8 @@ static int fsl_sai_trigger(struct snd_pcm_substream *substream, int cmd,
|
|
|
FSL_SAI_CSR_TERE, FSL_SAI_CSR_TERE);
|
|
|
}
|
|
|
|
|
|
+ regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx),
|
|
|
+ FSL_SAI_CSR_xIE_MASK, FSL_SAI_FLAGS);
|
|
|
regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx),
|
|
|
FSL_SAI_CSR_FRDE, FSL_SAI_CSR_FRDE);
|
|
|
break;
|
|
@@ -403,6 +405,8 @@ static int fsl_sai_trigger(struct snd_pcm_substream *substream, int cmd,
|
|
|
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
|
|
|
regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx),
|
|
|
FSL_SAI_CSR_FRDE, 0);
|
|
|
+ regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx),
|
|
|
+ FSL_SAI_CSR_xIE_MASK, 0);
|
|
|
|
|
|
if (!(tcsr & FSL_SAI_CSR_FRDE || rcsr & FSL_SAI_CSR_FRDE)) {
|
|
|
regmap_update_bits(sai->regmap, FSL_SAI_TCSR,
|
|
@@ -463,8 +467,8 @@ static int fsl_sai_dai_probe(struct snd_soc_dai *cpu_dai)
|
|
|
{
|
|
|
struct fsl_sai *sai = dev_get_drvdata(cpu_dai->dev);
|
|
|
|
|
|
- regmap_update_bits(sai->regmap, FSL_SAI_TCSR, 0xffffffff, FSL_SAI_FLAGS);
|
|
|
- regmap_update_bits(sai->regmap, FSL_SAI_RCSR, 0xffffffff, FSL_SAI_FLAGS);
|
|
|
+ regmap_update_bits(sai->regmap, FSL_SAI_TCSR, 0xffffffff, 0x0);
|
|
|
+ regmap_update_bits(sai->regmap, FSL_SAI_RCSR, 0xffffffff, 0x0);
|
|
|
regmap_update_bits(sai->regmap, FSL_SAI_TCR1, FSL_SAI_CR1_RFW_MASK,
|
|
|
FSL_SAI_MAXBURST_TX * 2);
|
|
|
regmap_update_bits(sai->regmap, FSL_SAI_RCR1, FSL_SAI_CR1_RFW_MASK,
|