diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/801-audio-0037-MLK-16224-4-ASoC-fsl_sai-support-multi-fifo-and-DSD.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/801-audio-0037-MLK-16224-4-ASoC-fsl_sai-support-multi-fifo-and-DSD.patch | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0037-MLK-16224-4-ASoC-fsl_sai-support-multi-fifo-and-DSD.patch b/target/linux/layerscape/patches-5.4/801-audio-0037-MLK-16224-4-ASoC-fsl_sai-support-multi-fifo-and-DSD.patch index c2952deaab..ee47b150c5 100644 --- a/target/linux/layerscape/patches-5.4/801-audio-0037-MLK-16224-4-ASoC-fsl_sai-support-multi-fifo-and-DSD.patch +++ b/target/linux/layerscape/patches-5.4/801-audio-0037-MLK-16224-4-ASoC-fsl_sai-support-multi-fifo-and-DSD.patch @@ -31,15 +31,7 @@ Reviewed-by: Viorel Suman <viorel.suman@nxp.com> --- a/sound/soc/fsl/fsl_sai.c +++ b/sound/soc/fsl/fsl_sai.c -@@ -267,6 +267,7 @@ static int fsl_sai_set_dai_fmt_tr(struct - if (!sai->is_lsb_first) - val_cr4 |= FSL_SAI_CR4_MF; - -+ sai->is_dsp_mode = false; - /* DAI mode */ - switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { - case SND_SOC_DAIFMT_I2S: -@@ -305,6 +306,11 @@ static int fsl_sai_set_dai_fmt_tr(struct +@@ -306,6 +306,11 @@ static int fsl_sai_set_dai_fmt_tr(struct val_cr2 |= FSL_SAI_CR2_BCP; sai->is_dsp_mode = true; break; @@ -51,7 +43,7 @@ Reviewed-by: Viorel Suman <viorel.suman@nxp.com> case SND_SOC_DAIFMT_RIGHT_J: /* To be done */ default: -@@ -492,12 +498,38 @@ static int fsl_sai_hw_params(struct snd_ +@@ -493,12 +498,38 @@ static int fsl_sai_hw_params(struct snd_ u32 slot_width = word_width; u32 pins; int ret; @@ -90,7 +82,7 @@ Reviewed-by: Viorel Suman <viorel.suman@nxp.com> if (sai->slot_width) slot_width = sai->slot_width; -@@ -527,7 +559,7 @@ static int fsl_sai_hw_params(struct snd_ +@@ -528,7 +559,7 @@ static int fsl_sai_hw_params(struct snd_ val_cr5 |= FSL_SAI_CR5_WNW(slot_width); val_cr5 |= FSL_SAI_CR5_W0W(slot_width); @@ -99,7 +91,7 @@ Reviewed-by: Viorel Suman <viorel.suman@nxp.com> val_cr5 |= FSL_SAI_CR5_FBT(0); else val_cr5 |= FSL_SAI_CR5_FBT(word_width - 1); -@@ -560,17 +592,71 @@ static int fsl_sai_hw_params(struct snd_ +@@ -561,17 +592,71 @@ static int fsl_sai_hw_params(struct snd_ } if (sai->soc->dataline != 0x1) { @@ -174,7 +166,7 @@ Reviewed-by: Viorel Suman <viorel.suman@nxp.com> regmap_update_bits(sai->regmap, FSL_SAI_xCR4(tx, offset), FSL_SAI_CR4_SYWD_MASK | FSL_SAI_CR4_FRSZ_MASK, -@@ -610,9 +696,18 @@ static int fsl_sai_trigger(struct snd_pc +@@ -611,9 +696,18 @@ static int fsl_sai_trigger(struct snd_pc unsigned char offset = sai->soc->reg_offset; bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK; u8 channels = substream->runtime->channels; @@ -194,7 +186,7 @@ Reviewed-by: Viorel Suman <viorel.suman@nxp.com> /* * Asynchronous mode: Clear SYNC for both Tx and Rx. * Rx sync with Tx clocks: Clear SYNC for Tx, set it for Rx. -@@ -631,10 +726,19 @@ static int fsl_sai_trigger(struct snd_pc +@@ -632,10 +726,19 @@ static int fsl_sai_trigger(struct snd_pc case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_RESUME: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: @@ -218,7 +210,7 @@ Reviewed-by: Viorel Suman <viorel.suman@nxp.com> regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx, offset), FSL_SAI_CSR_FRDE, FSL_SAI_CSR_FRDE); -@@ -994,6 +1098,7 @@ static int fsl_sai_probe(struct platform +@@ -995,6 +1098,7 @@ static int fsl_sai_probe(struct platform char tmp[8]; int irq, ret, i; int index; @@ -226,7 +218,7 @@ Reviewed-by: Viorel Suman <viorel.suman@nxp.com> struct regmap_config fsl_sai_regmap_config = fsl_sai_v2_regmap_config; unsigned long irqflags = 0; -@@ -1048,6 +1153,9 @@ static int fsl_sai_probe(struct platform +@@ -1049,6 +1153,9 @@ static int fsl_sai_probe(struct platform } } @@ -236,7 +228,7 @@ Reviewed-by: Viorel Suman <viorel.suman@nxp.com> /*dataline mask for rx and tx*/ ret = of_property_read_u32_index(np, "fsl,dataline", 0, &sai->dataline[0]); if (ret) -@@ -1062,6 +1170,37 @@ static int fsl_sai_probe(struct platform +@@ -1063,6 +1170,37 @@ static int fsl_sai_probe(struct platform return -EINVAL; } @@ -274,7 +266,7 @@ Reviewed-by: Viorel Suman <viorel.suman@nxp.com> if ((of_find_property(np, "fsl,i2s-xtor", NULL) != NULL) || (of_find_property(np, "fsl,txm-rxs", NULL) != NULL)) { -@@ -1144,6 +1283,11 @@ static int fsl_sai_probe(struct platform +@@ -1145,6 +1283,11 @@ static int fsl_sai_probe(struct platform sai->dma_params_rx.maxburst = FSL_SAI_MAXBURST_RX; sai->dma_params_tx.maxburst = FSL_SAI_MAXBURST_TX; |