summaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/801-audio-0037-MLK-16224-4-ASoC-fsl_sai-support-multi-fifo-and-DSD.patch
diff options
context:
space:
mode:
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.patch28
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;