summaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-5.4')
-rw-r--r--target/linux/layerscape/patches-5.4/303-core-0008-ENGR00279980-ubi-attach-do-not-return-EINVAL-if-the-.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0001-Revert-ASoC-fsl_sai-Fix-noise-when-using-EDMA.patch4
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0002-Revert-ASoC-fsl_sai-Implement-set_bclk_ratio.patch4
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0003-Revert-ASoC-fsl_sai-Add-support-for-imx8qm.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0004-Revert-ASoC-fsl_sai-Add-support-for-imx7ulp-imx8mq.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0005-Revert-ASoC-fsl_sai-Add-support-for-SAI-new-version.patch48
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0006-Revert-ASoC-fsl_sai-Update-Tx-Rx-channel-enable-mask.patch4
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0007-Revert-ASoC-fsl_sai-Add-registers-definition-for-mul.patch12
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0008-Revert-ASoC-Remove-dev_err-usage-after-platform_get_.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0009-Revert-ASoC-fsl_sai-mark-regmap-as-fast_io.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0010-Revert-ASoC-fsl_sai-derive-TX-FIFO-watermark-from-FI.patch4
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0011-Revert-ASoC-fsl_sai-add-of_match-data.patch6
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0012-MLK-9974-ASoC-fsl_sai-There-is-underrun-detected-in-.patch4
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0013-MLK-10611-1-ASoC-fsl-sai-Just-one-device-can-playbac.patch4
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0014-MLK-11628-ASoC-fsl_sai-add-initial-value-for-is_slav.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0015-ASoC-fsl-sai-set-xCR4-xCR5-xMR-for-SAI-master-mode.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0017-MLK-12786-2-ASoC-fsl_sai-correct-the-clock-source-fo.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0018-MLK-13574-2-ASoC-fsl_sai-refine-driver-for-ip-upgrad.patch34
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0019-MLK-13609-ASoC-fsl_sai-fix-for-synchronize-mode.patch6
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0020-ASoC-fsl_-e-sai-introduce-shared-interrupt-DT-flag-p.patch4
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0021-ASoC-fsl_sai-handle-slave-mode-per-TX-RX-direction.patch18
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0022-ASoC-fsl_sai-set-specific-fmt-for-I2S-XTOR.patch4
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0024-MLK-14847-Revert-ASoC-fsl-sai-set-xCR4-xCR5-xMR-for-.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0026-MLK-14935-ASoC-fsl_sai-Fix-mixing-initialization-dat.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0027-MLK-15140-1-ASoC-fsl_sai-support-latest-sai-module.patch46
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0028-MLK-15927-1-ASoC-fsl_sai-Fix-noise-when-using-EDMA.patch4
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0029-MLK-15960-1-ASoC-fsl_sai-update-fifo_depth-for-diffe.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0030-MLK-15960-2-ASoC-fsl_sai-refine-the-pm-runtime-funct.patch4
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0031-MLK-13975-ASoC-fsl_sai-Refine-master-flag-handling.patch6
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0032-MLK-16130-1-ASoC-fsl_sai-enable-TCE-RCE-according-to.patch10
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0033-MLK-13946-3-ASoC-fsl_sai-fix-the-xMR-setting.patch6
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0034-MLK-13946-8-ASoC-fsl_sai-use-min-channels-slots-for-.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0035-MLK-16929-1-ASoC-fsl_sai-add-bitclk_freq.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/801-audio-0037-MLK-16224-4-ASoC-fsl_sai-support-multi-fifo-and-DSD.patch28
-rw-r--r--target/linux/layerscape/patches-5.4/805-display-0041-drm-fourcc-add-a-10bits-fully-packed-variant-of-NV12.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/819-uart-0001-tty-serial-lpuart-add-power-domain-support.patch4
-rw-r--r--target/linux/layerscape/patches-5.4/819-uart-0002-tty-serial-fsl_lpuart-add-modem-device-reset.patch2
-rw-r--r--target/linux/layerscape/patches-5.4/819-uart-0005-tty-serial-fsl_lpuart-enable-dma-mode-for-imx8qxp.patch24
-rw-r--r--target/linux/layerscape/patches-5.4/819-uart-0008-MLK-21445-serial-fsl_lpuart-do-HW-reset-for-communic.patch4
-rw-r--r--target/linux/layerscape/patches-5.4/819-uart-0009-MLK-17133-02-tty-serial-lpuart-add-runtime-pm-suppor.patch20
-rw-r--r--target/linux/layerscape/patches-5.4/819-uart-0010-tty-serial-lpuart-enable-wakeup-source-for-lpuart.patch26
-rw-r--r--target/linux/layerscape/patches-5.4/819-uart-0011-serial-fsl_lpuart-enable-two-stop-bits.patch6
-rw-r--r--target/linux/layerscape/patches-5.4/819-uart-0013-LF-484-tty-serial-lpuart-support-UPIO_MEM32-for-lpua.patch2
43 files changed, 184 insertions, 192 deletions
diff --git a/target/linux/layerscape/patches-5.4/303-core-0008-ENGR00279980-ubi-attach-do-not-return-EINVAL-if-the-.patch b/target/linux/layerscape/patches-5.4/303-core-0008-ENGR00279980-ubi-attach-do-not-return-EINVAL-if-the-.patch
index 8b6515c759..95b8ca5b6c 100644
--- a/target/linux/layerscape/patches-5.4/303-core-0008-ENGR00279980-ubi-attach-do-not-return-EINVAL-if-the-.patch
+++ b/target/linux/layerscape/patches-5.4/303-core-0008-ENGR00279980-ubi-attach-do-not-return-EINVAL-if-the-.patch
@@ -35,7 +35,7 @@ Signed-off-by: Han Xu <han.xu@nxp.com>
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
-@@ -572,7 +572,7 @@ static int io_init(struct ubi_device *ub
+@@ -573,7 +573,7 @@ static int io_init(struct ubi_device *ub
dbg_gen("sizeof(struct ubi_ainf_peb) %zu", sizeof(struct ubi_ainf_peb));
dbg_gen("sizeof(struct ubi_wl_entry) %zu", sizeof(struct ubi_wl_entry));
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0001-Revert-ASoC-fsl_sai-Fix-noise-when-using-EDMA.patch b/target/linux/layerscape/patches-5.4/801-audio-0001-Revert-ASoC-fsl_sai-Fix-noise-when-using-EDMA.patch
index 98c9214eaf..6328ea00cd 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0001-Revert-ASoC-fsl_sai-Fix-noise-when-using-EDMA.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0001-Revert-ASoC-fsl_sai-Fix-noise-when-using-EDMA.patch
@@ -11,7 +11,7 @@ This reverts commit e75f4940e8ad0dd76527302a10c06b58bf7eb590.
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -628,16 +628,6 @@ static int fsl_sai_startup(struct snd_pc
+@@ -629,16 +629,6 @@ static int fsl_sai_startup(struct snd_pc
FSL_SAI_CR3_TRCE_MASK,
FSL_SAI_CR3_TRCE);
@@ -28,7 +28,7 @@ This reverts commit e75f4940e8ad0dd76527302a10c06b58bf7eb590.
ret = snd_pcm_hw_constraint_list(substream->runtime, 0,
SNDRV_PCM_HW_PARAM_RATE, &fsl_sai_rate_constraints);
-@@ -1052,35 +1042,30 @@ static int fsl_sai_remove(struct platfor
+@@ -1053,35 +1043,30 @@ static int fsl_sai_remove(struct platfor
static const struct fsl_sai_soc_data fsl_sai_vf610_data = {
.use_imx_pcm = false,
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0002-Revert-ASoC-fsl_sai-Implement-set_bclk_ratio.patch b/target/linux/layerscape/patches-5.4/801-audio-0002-Revert-ASoC-fsl_sai-Implement-set_bclk_ratio.patch
index 60e3e3e853..7771134276 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0002-Revert-ASoC-fsl_sai-Implement-set_bclk_ratio.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0002-Revert-ASoC-fsl_sai-Implement-set_bclk_ratio.patch
@@ -28,7 +28,7 @@ This reverts commit 63d1a3488ff58e094a7f517cf93c0250f0a3f6be.
static int fsl_sai_set_dai_sysclk_tr(struct snd_soc_dai *cpu_dai,
int clk_id, unsigned int freq, int fsl_dir)
{
-@@ -433,14 +423,8 @@ static int fsl_sai_hw_params(struct snd_
+@@ -434,14 +424,8 @@ static int fsl_sai_hw_params(struct snd_
slot_width = sai->slot_width;
if (!sai->is_slave_mode) {
@@ -45,7 +45,7 @@ This reverts commit 63d1a3488ff58e094a7f517cf93c0250f0a3f6be.
if (ret)
return ret;
-@@ -646,7 +630,6 @@ static void fsl_sai_shutdown(struct snd_
+@@ -647,7 +631,6 @@ static void fsl_sai_shutdown(struct snd_
}
static const struct snd_soc_dai_ops fsl_sai_pcm_dai_ops = {
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0003-Revert-ASoC-fsl_sai-Add-support-for-imx8qm.patch b/target/linux/layerscape/patches-5.4/801-audio-0003-Revert-ASoC-fsl_sai-Add-support-for-imx8qm.patch
index 1fe6c649dc..3f0d4ccdb4 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0003-Revert-ASoC-fsl_sai-Add-support-for-imx8qm.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0003-Revert-ASoC-fsl_sai-Add-support-for-imx8qm.patch
@@ -10,7 +10,7 @@ This reverts commit 6eeb60be5ebb73b2e5911e26fb1aed02940b7d09.
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -1047,19 +1047,12 @@ static const struct fsl_sai_soc_data fsl
+@@ -1048,19 +1048,12 @@ static const struct fsl_sai_soc_data fsl
.reg_offset = 8,
};
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0004-Revert-ASoC-fsl_sai-Add-support-for-imx7ulp-imx8mq.patch b/target/linux/layerscape/patches-5.4/801-audio-0004-Revert-ASoC-fsl_sai-Add-support-for-imx7ulp-imx8mq.patch
index f08d8e0e38..e73be4c229 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0004-Revert-ASoC-fsl_sai-Add-support-for-imx7ulp-imx8mq.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0004-Revert-ASoC-fsl_sai-Add-support-for-imx7ulp-imx8mq.patch
@@ -10,7 +10,7 @@ This reverts commit a860fac420971c5a90d4f78959b44ead793aee4f.
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -1035,24 +1035,10 @@ static const struct fsl_sai_soc_data fsl
+@@ -1036,24 +1036,10 @@ static const struct fsl_sai_soc_data fsl
.reg_offset = 0,
};
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0005-Revert-ASoC-fsl_sai-Add-support-for-SAI-new-version.patch b/target/linux/layerscape/patches-5.4/801-audio-0005-Revert-ASoC-fsl_sai-Add-support-for-SAI-new-version.patch
index d685119e04..87b74f17dc 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0005-Revert-ASoC-fsl_sai-Add-support-for-SAI-new-version.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0005-Revert-ASoC-fsl_sai-Add-support-for-SAI-new-version.patch
@@ -76,7 +76,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
bool tx = fsl_dir == FSL_FMT_TRANSMITTER;
u32 val_cr2 = 0, val_cr4 = 0;
-@@ -290,9 +287,9 @@ static int fsl_sai_set_dai_fmt_tr(struct
+@@ -291,9 +288,9 @@ static int fsl_sai_set_dai_fmt_tr(struct
return -EINVAL;
}
@@ -88,7 +88,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
FSL_SAI_CR4_MF | FSL_SAI_CR4_FSE |
FSL_SAI_CR4_FSP | FSL_SAI_CR4_FSD_MSTR, val_cr4);
-@@ -319,7 +316,6 @@ static int fsl_sai_set_dai_fmt(struct sn
+@@ -320,7 +317,6 @@ static int fsl_sai_set_dai_fmt(struct sn
static int fsl_sai_set_bclk(struct snd_soc_dai *dai, bool tx, u32 freq)
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(dai);
@@ -96,7 +96,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
unsigned long clk_rate;
u32 savediv = 0, ratio, savesub = freq;
u32 id;
-@@ -382,17 +378,17 @@ static int fsl_sai_set_bclk(struct snd_s
+@@ -383,17 +379,17 @@ static int fsl_sai_set_bclk(struct snd_s
*/
if ((sai->synchronous[TX] && !sai->synchronous[RX]) ||
(!tx && !sai->synchronous[RX])) {
@@ -118,7 +118,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
FSL_SAI_CR2_DIV_MASK, savediv - 1);
}
-@@ -407,7 +403,6 @@ static int fsl_sai_hw_params(struct snd_
+@@ -408,7 +404,6 @@ static int fsl_sai_hw_params(struct snd_
struct snd_soc_dai *cpu_dai)
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
@@ -126,7 +126,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
unsigned int channels = params_channels(params);
u32 word_width = params_width(params);
-@@ -460,19 +455,19 @@ static int fsl_sai_hw_params(struct snd_
+@@ -461,19 +456,19 @@ static int fsl_sai_hw_params(struct snd_
if (!sai->is_slave_mode) {
if (!sai->synchronous[TX] && sai->synchronous[RX] && !tx) {
@@ -150,7 +150,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
FSL_SAI_CR5_WNW_MASK | FSL_SAI_CR5_W0W_MASK |
FSL_SAI_CR5_FBT_MASK, val_cr5);
regmap_write(sai->regmap, FSL_SAI_RMR,
-@@ -480,10 +475,10 @@ static int fsl_sai_hw_params(struct snd_
+@@ -481,10 +476,10 @@ static int fsl_sai_hw_params(struct snd_
}
}
@@ -163,7 +163,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
FSL_SAI_CR5_WNW_MASK | FSL_SAI_CR5_W0W_MASK |
FSL_SAI_CR5_FBT_MASK, val_cr5);
regmap_write(sai->regmap, FSL_SAI_xMR(tx), ~0UL - ((1 << channels) - 1));
-@@ -511,8 +506,6 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -512,8 +507,6 @@ static int fsl_sai_trigger(struct snd_pc
struct snd_soc_dai *cpu_dai)
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
@@ -172,7 +172,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
u32 xcsr, count = 100;
-@@ -521,9 +514,9 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -522,9 +515,9 @@ static int fsl_sai_trigger(struct snd_pc
* Rx sync with Tx clocks: Clear SYNC for Tx, set it for Rx.
* Tx sync with Rx clocks: Clear SYNC for Rx, set it for Tx.
*/
@@ -185,7 +185,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
sai->synchronous[RX] ? FSL_SAI_CR2_SYNC : 0);
/*
-@@ -534,44 +527,43 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -535,44 +528,43 @@ static int fsl_sai_trigger(struct snd_pc
case SNDRV_PCM_TRIGGER_START:
case SNDRV_PCM_TRIGGER_RESUME:
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
@@ -242,7 +242,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
FSL_SAI_CSR_FR, FSL_SAI_CSR_FR);
/*
-@@ -583,13 +575,13 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -584,13 +576,13 @@ static int fsl_sai_trigger(struct snd_pc
*/
if (!sai->is_slave_mode) {
/* Software Reset for both Tx and Rx */
@@ -262,7 +262,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
}
}
break;
-@@ -604,11 +596,10 @@ static int fsl_sai_startup(struct snd_pc
+@@ -605,11 +597,10 @@ static int fsl_sai_startup(struct snd_pc
struct snd_soc_dai *cpu_dai)
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
@@ -275,7 +275,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
FSL_SAI_CR3_TRCE_MASK,
FSL_SAI_CR3_TRCE);
-@@ -622,10 +613,9 @@ static void fsl_sai_shutdown(struct snd_
+@@ -623,10 +614,9 @@ static void fsl_sai_shutdown(struct snd_
struct snd_soc_dai *cpu_dai)
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
@@ -287,7 +287,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
FSL_SAI_CR3_TRCE_MASK, 0);
}
-@@ -643,20 +633,17 @@ static const struct snd_soc_dai_ops fsl_
+@@ -644,20 +634,17 @@ static const struct snd_soc_dai_ops fsl_
static int fsl_sai_dai_probe(struct snd_soc_dai *cpu_dai)
{
struct fsl_sai *sai = dev_get_drvdata(cpu_dai->dev);
@@ -314,7 +314,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
FSL_SAI_MAXBURST_RX - 1);
snd_soc_dai_init_dma_data(cpu_dai, &sai->dma_params_tx,
-@@ -694,12 +681,12 @@ static const struct snd_soc_component_dr
+@@ -695,12 +682,12 @@ static const struct snd_soc_component_dr
.name = "fsl-sai",
};
@@ -333,7 +333,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
{FSL_SAI_TDR0, 0},
{FSL_SAI_TDR1, 0},
{FSL_SAI_TDR2, 0},
-@@ -708,50 +695,24 @@ static struct reg_default fsl_sai_reg_de
+@@ -709,50 +696,24 @@ static struct reg_default fsl_sai_reg_de
{FSL_SAI_TDR5, 0},
{FSL_SAI_TDR6, 0},
{FSL_SAI_TDR7, 0},
@@ -397,7 +397,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
case FSL_SAI_TFR0:
case FSL_SAI_TFR1:
case FSL_SAI_TFR2:
-@@ -761,6 +722,12 @@ static bool fsl_sai_readable_reg(struct
+@@ -762,6 +723,12 @@ static bool fsl_sai_readable_reg(struct
case FSL_SAI_TFR6:
case FSL_SAI_TFR7:
case FSL_SAI_TMR:
@@ -410,7 +410,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
case FSL_SAI_RDR0:
case FSL_SAI_RDR1:
case FSL_SAI_RDR2:
-@@ -786,13 +753,9 @@ static bool fsl_sai_readable_reg(struct
+@@ -787,13 +754,9 @@ static bool fsl_sai_readable_reg(struct
static bool fsl_sai_volatile_reg(struct device *dev, unsigned int reg)
{
@@ -426,7 +426,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
case FSL_SAI_TFR0:
case FSL_SAI_TFR1:
case FSL_SAI_TFR2:
-@@ -825,16 +788,13 @@ static bool fsl_sai_volatile_reg(struct
+@@ -826,16 +789,13 @@ static bool fsl_sai_volatile_reg(struct
static bool fsl_sai_writeable_reg(struct device *dev, unsigned int reg)
{
@@ -449,7 +449,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
case FSL_SAI_TDR0:
case FSL_SAI_TDR1:
case FSL_SAI_TDR2:
-@@ -844,6 +804,12 @@ static bool fsl_sai_writeable_reg(struct
+@@ -845,6 +805,12 @@ static bool fsl_sai_writeable_reg(struct
case FSL_SAI_TDR6:
case FSL_SAI_TDR7:
case FSL_SAI_TMR:
@@ -462,7 +462,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
case FSL_SAI_RMR:
return true;
default:
-@@ -851,15 +817,15 @@ static bool fsl_sai_writeable_reg(struct
+@@ -852,15 +818,15 @@ static bool fsl_sai_writeable_reg(struct
}
}
@@ -481,7 +481,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
.readable_reg = fsl_sai_readable_reg,
.volatile_reg = fsl_sai_volatile_reg,
.writeable_reg = fsl_sai_writeable_reg,
-@@ -891,12 +857,6 @@ static int fsl_sai_probe(struct platform
+@@ -892,12 +858,6 @@ static int fsl_sai_probe(struct platform
if (IS_ERR(base))
return PTR_ERR(base);
@@ -494,7 +494,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
sai->regmap = devm_regmap_init_mmio_clk(&pdev->dev,
"bus", base, &fsl_sai_regmap_config);
-@@ -1026,13 +986,11 @@ static int fsl_sai_remove(struct platfor
+@@ -1027,13 +987,11 @@ static int fsl_sai_remove(struct platfor
static const struct fsl_sai_soc_data fsl_sai_vf610_data = {
.use_imx_pcm = false,
.fifo_depth = 32,
@@ -508,7 +508,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
};
static const struct of_device_id fsl_sai_ids[] = {
-@@ -1065,7 +1023,6 @@ static int fsl_sai_runtime_suspend(struc
+@@ -1066,7 +1024,6 @@ static int fsl_sai_runtime_suspend(struc
static int fsl_sai_runtime_resume(struct device *dev)
{
struct fsl_sai *sai = dev_get_drvdata(dev);
@@ -516,7 +516,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
int ret;
ret = clk_prepare_enable(sai->bus_clk);
-@@ -1087,11 +1044,11 @@ static int fsl_sai_runtime_resume(struct
+@@ -1088,11 +1045,11 @@ static int fsl_sai_runtime_resume(struct
}
regcache_cache_only(sai->regmap, false);
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0006-Revert-ASoC-fsl_sai-Update-Tx-Rx-channel-enable-mask.patch b/target/linux/layerscape/patches-5.4/801-audio-0006-Revert-ASoC-fsl_sai-Update-Tx-Rx-channel-enable-mask.patch
index e116389031..1283e3edc6 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0006-Revert-ASoC-fsl_sai-Update-Tx-Rx-channel-enable-mask.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0006-Revert-ASoC-fsl_sai-Update-Tx-Rx-channel-enable-mask.patch
@@ -11,7 +11,7 @@ This reverts commit b84f50b0fcb497a62068926fca793d2d213c7dbd.
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -599,8 +599,7 @@ static int fsl_sai_startup(struct snd_pc
+@@ -600,8 +600,7 @@ static int fsl_sai_startup(struct snd_pc
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
int ret;
@@ -21,7 +21,7 @@ This reverts commit b84f50b0fcb497a62068926fca793d2d213c7dbd.
FSL_SAI_CR3_TRCE);
ret = snd_pcm_hw_constraint_list(substream->runtime, 0,
-@@ -615,8 +614,7 @@ static void fsl_sai_shutdown(struct snd_
+@@ -616,8 +615,7 @@ static void fsl_sai_shutdown(struct snd_
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0007-Revert-ASoC-fsl_sai-Add-registers-definition-for-mul.patch b/target/linux/layerscape/patches-5.4/801-audio-0007-Revert-ASoC-fsl_sai-Add-registers-definition-for-mul.patch
index d73a4269d6..62aba38119 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0007-Revert-ASoC-fsl_sai-Add-registers-definition-for-mul.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0007-Revert-ASoC-fsl_sai-Add-registers-definition-for-mul.patch
@@ -12,7 +12,7 @@ This reverts commit 5f0ac20ed6db1d6da2eea8b862cf3d54fdfb5830.
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -685,14 +685,7 @@ static struct reg_default fsl_sai_reg_de
+@@ -686,14 +686,7 @@ static struct reg_default fsl_sai_reg_de
{FSL_SAI_TCR3, 0},
{FSL_SAI_TCR4, 0},
{FSL_SAI_TCR5, 0},
@@ -28,7 +28,7 @@ This reverts commit 5f0ac20ed6db1d6da2eea8b862cf3d54fdfb5830.
{FSL_SAI_TMR, 0},
{FSL_SAI_RCR1, 0},
{FSL_SAI_RCR2, 0},
-@@ -711,14 +704,7 @@ static bool fsl_sai_readable_reg(struct
+@@ -712,14 +705,7 @@ static bool fsl_sai_readable_reg(struct
case FSL_SAI_TCR3:
case FSL_SAI_TCR4:
case FSL_SAI_TCR5:
@@ -44,7 +44,7 @@ This reverts commit 5f0ac20ed6db1d6da2eea8b862cf3d54fdfb5830.
case FSL_SAI_TMR:
case FSL_SAI_RCSR:
case FSL_SAI_RCR1:
-@@ -726,22 +712,8 @@ static bool fsl_sai_readable_reg(struct
+@@ -727,22 +713,8 @@ static bool fsl_sai_readable_reg(struct
case FSL_SAI_RCR3:
case FSL_SAI_RCR4:
case FSL_SAI_RCR5:
@@ -69,7 +69,7 @@ This reverts commit 5f0ac20ed6db1d6da2eea8b862cf3d54fdfb5830.
case FSL_SAI_RMR:
return true;
default:
-@@ -754,30 +726,9 @@ static bool fsl_sai_volatile_reg(struct
+@@ -755,30 +727,9 @@ static bool fsl_sai_volatile_reg(struct
switch (reg) {
case FSL_SAI_TCSR:
case FSL_SAI_RCSR:
@@ -103,7 +103,7 @@ This reverts commit 5f0ac20ed6db1d6da2eea8b862cf3d54fdfb5830.
return true;
default:
return false;
-@@ -793,14 +744,7 @@ static bool fsl_sai_writeable_reg(struct
+@@ -794,14 +745,7 @@ static bool fsl_sai_writeable_reg(struct
case FSL_SAI_TCR3:
case FSL_SAI_TCR4:
case FSL_SAI_TCR5:
@@ -119,7 +119,7 @@ This reverts commit 5f0ac20ed6db1d6da2eea8b862cf3d54fdfb5830.
case FSL_SAI_TMR:
case FSL_SAI_RCSR:
case FSL_SAI_RCR1:
-@@ -942,8 +886,8 @@ static int fsl_sai_probe(struct platform
+@@ -943,8 +887,8 @@ static int fsl_sai_probe(struct platform
MCLK_DIR(index));
}
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0008-Revert-ASoC-Remove-dev_err-usage-after-platform_get_.patch b/target/linux/layerscape/patches-5.4/801-audio-0008-Revert-ASoC-Remove-dev_err-usage-after-platform_get_.patch
index 207c832050..9dfde30beb 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0008-Revert-ASoC-Remove-dev_err-usage-after-platform_get_.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0008-Revert-ASoC-Remove-dev_err-usage-after-platform_get_.patch
@@ -154,7 +154,7 @@ This reverts commit cf9441adb1a35506d7606866c382b9d8614169b5.
esai_priv->name, esai_priv);
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -831,8 +831,10 @@ static int fsl_sai_probe(struct platform
+@@ -832,8 +832,10 @@ static int fsl_sai_probe(struct platform
}
irq = platform_get_irq(pdev, 0);
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0009-Revert-ASoC-fsl_sai-mark-regmap-as-fast_io.patch b/target/linux/layerscape/patches-5.4/801-audio-0009-Revert-ASoC-fsl_sai-mark-regmap-as-fast_io.patch
index 454bfd5a18..0c031f9491 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0009-Revert-ASoC-fsl_sai-mark-regmap-as-fast_io.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0009-Revert-ASoC-fsl_sai-mark-regmap-as-fast_io.patch
@@ -10,7 +10,7 @@ This reverts commit 6d19d8a3cec74a9680947ecb6abdeda38583110e.
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -763,7 +763,6 @@ static const struct regmap_config fsl_sa
+@@ -764,7 +764,6 @@ static const struct regmap_config fsl_sa
.reg_bits = 32,
.reg_stride = 4,
.val_bits = 32,
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0010-Revert-ASoC-fsl_sai-derive-TX-FIFO-watermark-from-FI.patch b/target/linux/layerscape/patches-5.4/801-audio-0010-Revert-ASoC-fsl_sai-derive-TX-FIFO-watermark-from-FI.patch
index 07c3b87b04..62e2151888 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0010-Revert-ASoC-fsl_sai-derive-TX-FIFO-watermark-from-FI.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0010-Revert-ASoC-fsl_sai-derive-TX-FIFO-watermark-from-FI.patch
@@ -12,7 +12,7 @@ This reverts commit bd517707d85f19a7339ea8b882fcbf0fd9976bd6.
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -640,7 +640,7 @@ static int fsl_sai_dai_probe(struct snd_
+@@ -641,7 +641,7 @@ static int fsl_sai_dai_probe(struct snd_
regmap_write(sai->regmap, FSL_SAI_RCSR, 0);
regmap_update_bits(sai->regmap, FSL_SAI_TCR1, FSL_SAI_CR1_RFW_MASK,
@@ -21,7 +21,7 @@ This reverts commit bd517707d85f19a7339ea8b882fcbf0fd9976bd6.
regmap_update_bits(sai->regmap, FSL_SAI_RCR1, FSL_SAI_CR1_RFW_MASK,
FSL_SAI_MAXBURST_RX - 1);
-@@ -928,12 +928,10 @@ static int fsl_sai_remove(struct platfor
+@@ -929,12 +929,10 @@ static int fsl_sai_remove(struct platfor
static const struct fsl_sai_soc_data fsl_sai_vf610_data = {
.use_imx_pcm = false,
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0011-Revert-ASoC-fsl_sai-add-of_match-data.patch b/target/linux/layerscape/patches-5.4/801-audio-0011-Revert-ASoC-fsl_sai-add-of_match-data.patch
index 12a32bc26b..d6a8c97379 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0011-Revert-ASoC-fsl_sai-add-of_match-data.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0011-Revert-ASoC-fsl_sai-add-of_match-data.patch
@@ -22,7 +22,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>
#include <linux/slab.h>
-@@ -789,7 +788,10 @@ static int fsl_sai_probe(struct platform
+@@ -790,7 +789,10 @@ static int fsl_sai_probe(struct platform
return -ENOMEM;
sai->pdev = pdev;
@@ -34,7 +34,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
sai->is_lsb_first = of_property_read_bool(np, "lsb-first");
-@@ -901,7 +903,7 @@ static int fsl_sai_probe(struct platform
+@@ -902,7 +904,7 @@ static int fsl_sai_probe(struct platform
if (ret)
goto err_pm_disable;
@@ -43,7 +43,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
ret = imx_pcm_dma_init(pdev, IMX_SAI_DMABUF_SIZE);
if (ret)
goto err_pm_disable;
-@@ -926,18 +928,10 @@ static int fsl_sai_remove(struct platfor
+@@ -927,18 +929,10 @@ static int fsl_sai_remove(struct platfor
return 0;
}
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0012-MLK-9974-ASoC-fsl_sai-There-is-underrun-detected-in-.patch b/target/linux/layerscape/patches-5.4/801-audio-0012-MLK-9974-ASoC-fsl_sai-There-is-underrun-detected-in-.patch
index 3b7de3c98b..809a642ce9 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0012-MLK-9974-ASoC-fsl_sai-There-is-underrun-detected-in-.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0012-MLK-9974-ASoC-fsl_sai-There-is-underrun-detected-in-.patch
@@ -15,7 +15,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -506,7 +506,9 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -507,7 +507,9 @@ static int fsl_sai_trigger(struct snd_pc
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
@@ -25,7 +25,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
/*
* Asynchronous mode: Clear SYNC for both Tx and Rx.
-@@ -529,6 +531,11 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -530,6 +532,11 @@ static int fsl_sai_trigger(struct snd_pc
regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx),
FSL_SAI_CSR_FRDE, FSL_SAI_CSR_FRDE);
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0013-MLK-10611-1-ASoC-fsl-sai-Just-one-device-can-playbac.patch b/target/linux/layerscape/patches-5.4/801-audio-0013-MLK-10611-1-ASoC-fsl-sai-Just-one-device-can-playbac.patch
index faff9786b7..d365c6c525 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0013-MLK-10611-1-ASoC-fsl-sai-Just-one-device-can-playbac.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0013-MLK-10611-1-ASoC-fsl-sai-Just-one-device-can-playbac.patch
@@ -15,7 +15,7 @@ Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -605,6 +605,11 @@ static int fsl_sai_startup(struct snd_pc
+@@ -606,6 +606,11 @@ static int fsl_sai_startup(struct snd_pc
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
int ret;
@@ -27,7 +27,7 @@ Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
regmap_update_bits(sai->regmap, FSL_SAI_xCR3(tx), FSL_SAI_CR3_TRCE,
FSL_SAI_CR3_TRCE);
-@@ -621,6 +626,11 @@ static void fsl_sai_shutdown(struct snd_
+@@ -622,6 +627,11 @@ static void fsl_sai_shutdown(struct snd_
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
regmap_update_bits(sai->regmap, FSL_SAI_xCR3(tx), FSL_SAI_CR3_TRCE, 0);
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0014-MLK-11628-ASoC-fsl_sai-add-initial-value-for-is_slav.patch b/target/linux/layerscape/patches-5.4/801-audio-0014-MLK-11628-ASoC-fsl_sai-add-initial-value-for-is_slav.patch
index 0fe22451f1..0e282895cd 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0014-MLK-11628-ASoC-fsl_sai-add-initial-value-for-is_slav.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0014-MLK-11628-ASoC-fsl_sai-add-initial-value-for-is_slav.patch
@@ -14,7 +14,7 @@ Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -264,6 +264,8 @@ static int fsl_sai_set_dai_fmt_tr(struct
+@@ -265,6 +265,8 @@ static int fsl_sai_set_dai_fmt_tr(struct
return -EINVAL;
}
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0015-ASoC-fsl-sai-set-xCR4-xCR5-xMR-for-SAI-master-mode.patch b/target/linux/layerscape/patches-5.4/801-audio-0015-ASoC-fsl-sai-set-xCR4-xCR5-xMR-for-SAI-master-mode.patch
index 8dbc6d1551..b43e581b30 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0015-ASoC-fsl-sai-set-xCR4-xCR5-xMR-for-SAI-master-mode.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0015-ASoC-fsl-sai-set-xCR4-xCR5-xMR-for-SAI-master-mode.patch
@@ -18,7 +18,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -476,6 +476,35 @@ static int fsl_sai_hw_params(struct snd_
+@@ -477,6 +477,35 @@ static int fsl_sai_hw_params(struct snd_
}
}
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0017-MLK-12786-2-ASoC-fsl_sai-correct-the-clock-source-fo.patch b/target/linux/layerscape/patches-5.4/801-audio-0017-MLK-12786-2-ASoC-fsl_sai-correct-the-clock-source-fo.patch
index 470b1d02c4..5c52d0334d 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0017-MLK-12786-2-ASoC-fsl_sai-correct-the-clock-source-fo.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0017-MLK-12786-2-ASoC-fsl_sai-correct-the-clock-source-fo.patch
@@ -13,7 +13,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -868,8 +868,7 @@ static int fsl_sai_probe(struct platform
+@@ -869,8 +869,7 @@ static int fsl_sai_probe(struct platform
sai->bus_clk = NULL;
}
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0018-MLK-13574-2-ASoC-fsl_sai-refine-driver-for-ip-upgrad.patch b/target/linux/layerscape/patches-5.4/801-audio-0018-MLK-13574-2-ASoC-fsl_sai-refine-driver-for-ip-upgrad.patch
index 793936d376..0e35a7c79a 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0018-MLK-13574-2-ASoC-fsl_sai-refine-driver-for-ip-upgrad.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0018-MLK-13574-2-ASoC-fsl_sai-refine-driver-for-ip-upgrad.patch
@@ -76,7 +76,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
static const unsigned int fsl_sai_rates[] = {
8000, 11025, 12000, 16000, 22050,
24000, 32000, 44100, 48000, 64000,
-@@ -505,6 +541,29 @@ static int fsl_sai_hw_params(struct snd_
+@@ -506,6 +542,29 @@ static int fsl_sai_hw_params(struct snd_
}
}
@@ -106,7 +106,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
regmap_update_bits(sai->regmap, FSL_SAI_xCR4(tx),
FSL_SAI_CR4_SYWD_MASK | FSL_SAI_CR4_FRSZ_MASK,
val_cr4);
-@@ -563,14 +622,16 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -564,14 +623,16 @@ static int fsl_sai_trigger(struct snd_pc
FSL_SAI_CSR_FRDE, FSL_SAI_CSR_FRDE);
for (i = 0; tx && i < channels; i++)
@@ -126,7 +126,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx),
FSL_SAI_CSR_xIE_MASK, FSL_SAI_FLAGS);
-@@ -641,8 +702,8 @@ static int fsl_sai_startup(struct snd_pc
+@@ -642,8 +703,8 @@ static int fsl_sai_startup(struct snd_pc
else
sai->is_stream_opened[tx] = true;
@@ -137,7 +137,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
ret = snd_pcm_hw_constraint_list(substream->runtime, 0,
SNDRV_PCM_HW_PARAM_RATE, &fsl_sai_rate_constraints);
-@@ -659,7 +720,7 @@ static void fsl_sai_shutdown(struct snd_
+@@ -660,7 +721,7 @@ static void fsl_sai_shutdown(struct snd_
regmap_update_bits(sai->regmap, FSL_SAI_xCR3(tx), FSL_SAI_CR3_TRCE, 0);
if (sai->is_stream_opened[tx]) {
@@ -146,7 +146,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
sai->is_stream_opened[tx] = false;
}
}
-@@ -687,7 +748,7 @@ static int fsl_sai_dai_probe(struct snd_
+@@ -688,7 +749,7 @@ static int fsl_sai_dai_probe(struct snd_
regmap_write(sai->regmap, FSL_SAI_RCSR, 0);
regmap_update_bits(sai->regmap, FSL_SAI_TCR1, FSL_SAI_CR1_RFW_MASK,
@@ -155,7 +155,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
regmap_update_bits(sai->regmap, FSL_SAI_RCR1, FSL_SAI_CR1_RFW_MASK,
FSL_SAI_MAXBURST_RX - 1);
-@@ -732,7 +793,8 @@ static struct reg_default fsl_sai_reg_de
+@@ -733,7 +794,8 @@ static struct reg_default fsl_sai_reg_de
{FSL_SAI_TCR3, 0},
{FSL_SAI_TCR4, 0},
{FSL_SAI_TCR5, 0},
@@ -165,7 +165,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
{FSL_SAI_TMR, 0},
{FSL_SAI_RCR1, 0},
{FSL_SAI_RCR2, 0},
-@@ -751,7 +813,8 @@ static bool fsl_sai_readable_reg(struct
+@@ -752,7 +814,8 @@ static bool fsl_sai_readable_reg(struct
case FSL_SAI_TCR3:
case FSL_SAI_TCR4:
case FSL_SAI_TCR5:
@@ -175,7 +175,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
case FSL_SAI_TMR:
case FSL_SAI_RCSR:
case FSL_SAI_RCR1:
-@@ -759,8 +822,10 @@ static bool fsl_sai_readable_reg(struct
+@@ -760,8 +823,10 @@ static bool fsl_sai_readable_reg(struct
case FSL_SAI_RCR3:
case FSL_SAI_RCR4:
case FSL_SAI_RCR5:
@@ -188,7 +188,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
case FSL_SAI_RMR:
return true;
default:
-@@ -773,9 +838,12 @@ static bool fsl_sai_volatile_reg(struct
+@@ -774,9 +839,12 @@ static bool fsl_sai_volatile_reg(struct
switch (reg) {
case FSL_SAI_TCSR:
case FSL_SAI_RCSR:
@@ -204,7 +204,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
return true;
default:
return false;
-@@ -791,7 +859,8 @@ static bool fsl_sai_writeable_reg(struct
+@@ -792,7 +860,8 @@ static bool fsl_sai_writeable_reg(struct
case FSL_SAI_TCR3:
case FSL_SAI_TCR4:
case FSL_SAI_TCR5:
@@ -214,7 +214,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
case FSL_SAI_TMR:
case FSL_SAI_RCSR:
case FSL_SAI_RCR1:
-@@ -820,9 +889,19 @@ static const struct regmap_config fsl_sa
+@@ -821,9 +890,19 @@ static const struct regmap_config fsl_sa
.cache_type = REGCACHE_FLAT,
};
@@ -234,7 +234,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
struct fsl_sai *sai;
struct regmap *gpr;
struct resource *res;
-@@ -837,11 +916,12 @@ static int fsl_sai_probe(struct platform
+@@ -838,11 +917,12 @@ static int fsl_sai_probe(struct platform
sai->pdev = pdev;
@@ -250,7 +250,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
base = devm_ioremap_resource(&pdev->dev, res);
-@@ -873,11 +953,25 @@ static int fsl_sai_probe(struct platform
+@@ -874,11 +954,25 @@ static int fsl_sai_probe(struct platform
sai->mclk_clk[i] = devm_clk_get(&pdev->dev, tmp);
if (IS_ERR(sai->mclk_clk[i])) {
dev_err(&pdev->dev, "failed to get mclk%d clock: %ld\n",
@@ -277,7 +277,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
irq = platform_get_irq(pdev, 0);
if (irq < 0) {
dev_err(&pdev->dev, "no irq for node %s\n", pdev->name);
-@@ -936,8 +1030,8 @@ static int fsl_sai_probe(struct platform
+@@ -937,8 +1031,8 @@ static int fsl_sai_probe(struct platform
MCLK_DIR(index));
}
@@ -288,7 +288,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
sai->dma_params_rx.maxburst = FSL_SAI_MAXBURST_RX;
sai->dma_params_tx.maxburst = FSL_SAI_MAXBURST_TX;
-@@ -950,7 +1044,7 @@ static int fsl_sai_probe(struct platform
+@@ -951,7 +1045,7 @@ static int fsl_sai_probe(struct platform
if (ret)
goto err_pm_disable;
@@ -297,7 +297,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
ret = imx_pcm_dma_init(pdev, IMX_SAI_DMABUF_SIZE);
if (ret)
goto err_pm_disable;
-@@ -996,6 +1090,9 @@ static int fsl_sai_runtime_suspend(struc
+@@ -997,6 +1091,9 @@ static int fsl_sai_runtime_suspend(struc
clk_disable_unprepare(sai->bus_clk);
@@ -307,7 +307,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
regcache_cache_only(sai->regmap, true);
regcache_mark_dirty(sai->regmap);
-@@ -1025,6 +1122,10 @@ static int fsl_sai_runtime_resume(struct
+@@ -1026,6 +1123,10 @@ static int fsl_sai_runtime_resume(struct
goto disable_tx_clk;
}
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0019-MLK-13609-ASoC-fsl_sai-fix-for-synchronize-mode.patch b/target/linux/layerscape/patches-5.4/801-audio-0019-MLK-13609-ASoC-fsl_sai-fix-for-synchronize-mode.patch
index 2d7832744a..40915d41cd 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0019-MLK-13609-ASoC-fsl_sai-fix-for-synchronize-mode.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0019-MLK-13609-ASoC-fsl_sai-fix-for-synchronize-mode.patch
@@ -15,7 +15,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -527,8 +527,6 @@ static int fsl_sai_hw_params(struct snd_
+@@ -528,8 +528,6 @@ static int fsl_sai_hw_params(struct snd_
regmap_update_bits(sai->regmap, FSL_SAI_TCR5,
FSL_SAI_CR5_WNW_MASK | FSL_SAI_CR5_W0W_MASK |
FSL_SAI_CR5_FBT_MASK, val_cr5);
@@ -24,7 +24,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
} else if (!sai->synchronous[RX] && sai->synchronous[TX] && tx) {
regmap_update_bits(sai->regmap, FSL_SAI_RCR4,
FSL_SAI_CR4_SYWD_MASK | FSL_SAI_CR4_FRSZ_MASK,
-@@ -536,8 +534,6 @@ static int fsl_sai_hw_params(struct snd_
+@@ -537,8 +535,6 @@ static int fsl_sai_hw_params(struct snd_
regmap_update_bits(sai->regmap, FSL_SAI_RCR5,
FSL_SAI_CR5_WNW_MASK | FSL_SAI_CR5_W0W_MASK |
FSL_SAI_CR5_FBT_MASK, val_cr5);
@@ -33,7 +33,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
}
}
-@@ -626,12 +622,17 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -627,12 +623,17 @@ static int fsl_sai_trigger(struct snd_pc
if (tx)
udelay(10);
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0020-ASoC-fsl_-e-sai-introduce-shared-interrupt-DT-flag-p.patch b/target/linux/layerscape/patches-5.4/801-audio-0020-ASoC-fsl_-e-sai-introduce-shared-interrupt-DT-flag-p.patch
index 1184bce0e3..5397a3e8d1 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0020-ASoC-fsl_-e-sai-introduce-shared-interrupt-DT-flag-p.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0020-ASoC-fsl_-e-sai-introduce-shared-interrupt-DT-flag-p.patch
@@ -18,7 +18,7 @@ Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -910,6 +910,7 @@ static int fsl_sai_probe(struct platform
+@@ -911,6 +911,7 @@ static int fsl_sai_probe(struct platform
char tmp[8];
int irq, ret, i;
int index;
@@ -26,7 +26,7 @@ Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
sai = devm_kzalloc(&pdev->dev, sizeof(*sai), GFP_KERNEL);
if (!sai)
-@@ -979,7 +980,12 @@ static int fsl_sai_probe(struct platform
+@@ -980,7 +981,12 @@ static int fsl_sai_probe(struct platform
return irq;
}
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0021-ASoC-fsl_sai-handle-slave-mode-per-TX-RX-direction.patch b/target/linux/layerscape/patches-5.4/801-audio-0021-ASoC-fsl_sai-handle-slave-mode-per-TX-RX-direction.patch
index 2fb5789ef3..bcdd39a9b3 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0021-ASoC-fsl_sai-handle-slave-mode-per-TX-RX-direction.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0021-ASoC-fsl_sai-handle-slave-mode-per-TX-RX-direction.patch
@@ -16,7 +16,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -300,7 +300,7 @@ static int fsl_sai_set_dai_fmt_tr(struct
+@@ -301,7 +301,7 @@ static int fsl_sai_set_dai_fmt_tr(struct
return -EINVAL;
}
@@ -25,7 +25,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
/* DAI clock master masks */
switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
-@@ -310,7 +310,7 @@ static int fsl_sai_set_dai_fmt_tr(struct
+@@ -311,7 +311,7 @@ static int fsl_sai_set_dai_fmt_tr(struct
sai->is_slave_mode = false;
break;
case SND_SOC_DAIFMT_CBM_CFM:
@@ -34,7 +34,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
break;
case SND_SOC_DAIFMT_CBS_CFM:
val_cr2 |= FSL_SAI_CR2_BCD_MSTR;
-@@ -318,7 +318,7 @@ static int fsl_sai_set_dai_fmt_tr(struct
+@@ -319,7 +319,7 @@ static int fsl_sai_set_dai_fmt_tr(struct
break;
case SND_SOC_DAIFMT_CBM_CFS:
val_cr4 |= FSL_SAI_CR4_FSD_MSTR;
@@ -43,7 +43,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
break;
default:
return -EINVAL;
-@@ -359,7 +359,7 @@ static int fsl_sai_set_bclk(struct snd_s
+@@ -360,7 +360,7 @@ static int fsl_sai_set_bclk(struct snd_s
int ret = 0;
/* Don't apply to slave mode */
@@ -52,7 +52,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
return 0;
for (id = 0; id < FSL_SAI_MCLK_MAX; id++) {
-@@ -454,7 +454,7 @@ static int fsl_sai_hw_params(struct snd_
+@@ -455,7 +455,7 @@ static int fsl_sai_hw_params(struct snd_
if (sai->slot_width)
slot_width = sai->slot_width;
@@ -61,7 +61,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
ret = fsl_sai_set_bclk(cpu_dai, tx,
slots * slot_width * params_rate(params));
if (ret)
-@@ -490,7 +490,7 @@ static int fsl_sai_hw_params(struct snd_
+@@ -491,7 +491,7 @@ static int fsl_sai_hw_params(struct snd_
* error.
*/
@@ -70,7 +70,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
if (!sai->synchronous[TX] && sai->synchronous[RX] && !tx) {
regmap_update_bits(sai->regmap, FSL_SAI_TCR4,
FSL_SAI_CR4_SYWD_MASK | FSL_SAI_CR4_FRSZ_MASK,
-@@ -519,7 +519,7 @@ static int fsl_sai_hw_params(struct snd_
+@@ -520,7 +520,7 @@ static int fsl_sai_hw_params(struct snd_
* error.
*/
@@ -79,7 +79,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
if (!sai->synchronous[TX] && sai->synchronous[RX] && !tx) {
regmap_update_bits(sai->regmap, FSL_SAI_TCR4,
FSL_SAI_CR4_SYWD_MASK | FSL_SAI_CR4_FRSZ_MASK,
-@@ -577,7 +577,7 @@ static int fsl_sai_hw_free(struct snd_pc
+@@ -578,7 +578,7 @@ static int fsl_sai_hw_free(struct snd_pc
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
@@ -88,7 +88,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
sai->mclk_streams & BIT(substream->stream)) {
clk_disable_unprepare(sai->mclk_clk[sai->mclk_id[tx]]);
sai->mclk_streams &= ~BIT(substream->stream);
-@@ -672,7 +672,7 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -673,7 +673,7 @@ static int fsl_sai_trigger(struct snd_pc
* This is a hardware bug, and will be fix in the
* next sai version.
*/
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0022-ASoC-fsl_sai-set-specific-fmt-for-I2S-XTOR.patch b/target/linux/layerscape/patches-5.4/801-audio-0022-ASoC-fsl_sai-set-specific-fmt-for-I2S-XTOR.patch
index 84bf81ae64..cfdfac9c3a 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0022-ASoC-fsl_sai-set-specific-fmt-for-I2S-XTOR.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0022-ASoC-fsl_sai-set-specific-fmt-for-I2S-XTOR.patch
@@ -15,7 +15,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -335,14 +335,23 @@ static int fsl_sai_set_dai_fmt_tr(struct
+@@ -336,14 +336,23 @@ static int fsl_sai_set_dai_fmt_tr(struct
static int fsl_sai_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
{
@@ -39,7 +39,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
ret = fsl_sai_set_dai_fmt_tr(cpu_dai, fmt, FSL_FMT_RECEIVER);
if (ret)
dev_err(cpu_dai->dev, "Cannot set rx format: %d\n", ret);
-@@ -974,6 +983,9 @@ static int fsl_sai_probe(struct platform
+@@ -975,6 +984,9 @@ static int fsl_sai_probe(struct platform
return -EINVAL;
}
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0024-MLK-14847-Revert-ASoC-fsl-sai-set-xCR4-xCR5-xMR-for-.patch b/target/linux/layerscape/patches-5.4/801-audio-0024-MLK-14847-Revert-ASoC-fsl-sai-set-xCR4-xCR5-xMR-for-.patch
index 1edd4a35ea..d7b01df073 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0024-MLK-14847-Revert-ASoC-fsl-sai-set-xCR4-xCR5-xMR-for-.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0024-MLK-14847-Revert-ASoC-fsl-sai-set-xCR4-xCR5-xMR-for-.patch
@@ -21,7 +21,7 @@ Signed-off-by: Mihai Serban <mihai.serban@nxp.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -507,35 +507,6 @@ static int fsl_sai_hw_params(struct snd_
+@@ -508,35 +508,6 @@ static int fsl_sai_hw_params(struct snd_
regmap_update_bits(sai->regmap, FSL_SAI_TCR5,
FSL_SAI_CR5_WNW_MASK | FSL_SAI_CR5_W0W_MASK |
FSL_SAI_CR5_FBT_MASK, val_cr5);
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0026-MLK-14935-ASoC-fsl_sai-Fix-mixing-initialization-dat.patch b/target/linux/layerscape/patches-5.4/801-audio-0026-MLK-14935-ASoC-fsl_sai-Fix-mixing-initialization-dat.patch
index a68985fa02..1fdb99645a 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0026-MLK-14935-ASoC-fsl_sai-Fix-mixing-initialization-dat.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0026-MLK-14935-ASoC-fsl_sai-Fix-mixing-initialization-dat.patch
@@ -16,7 +16,7 @@ Signed-off-by: Mihai Serban <mihai.serban@nxp.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -594,15 +594,14 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -595,15 +595,14 @@ static int fsl_sai_trigger(struct snd_pc
case SNDRV_PCM_TRIGGER_START:
case SNDRV_PCM_TRIGGER_RESUME:
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0027-MLK-15140-1-ASoC-fsl_sai-support-latest-sai-module.patch b/target/linux/layerscape/patches-5.4/801-audio-0027-MLK-15140-1-ASoC-fsl_sai-support-latest-sai-module.patch
index f0063453d5..49f777603a 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0027-MLK-15140-1-ASoC-fsl_sai-support-latest-sai-module.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0027-MLK-15140-1-ASoC-fsl_sai-support-latest-sai-module.patch
@@ -114,7 +114,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
bool tx = fsl_dir == FSL_FMT_TRANSMITTER;
u32 val_cr2 = 0, val_cr4 = 0;
-@@ -324,9 +339,9 @@ static int fsl_sai_set_dai_fmt_tr(struct
+@@ -325,9 +340,9 @@ static int fsl_sai_set_dai_fmt_tr(struct
return -EINVAL;
}
@@ -126,7 +126,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
FSL_SAI_CR4_MF | FSL_SAI_CR4_FSE |
FSL_SAI_CR4_FSP | FSL_SAI_CR4_FSD_MSTR, val_cr4);
-@@ -362,6 +377,7 @@ static int fsl_sai_set_dai_fmt(struct sn
+@@ -363,6 +378,7 @@ static int fsl_sai_set_dai_fmt(struct sn
static int fsl_sai_set_bclk(struct snd_soc_dai *dai, bool tx, u32 freq)
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(dai);
@@ -134,7 +134,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
unsigned long clk_rate;
u32 savediv = 0, ratio, savesub = freq;
u32 id;
-@@ -424,17 +440,17 @@ static int fsl_sai_set_bclk(struct snd_s
+@@ -425,17 +441,17 @@ static int fsl_sai_set_bclk(struct snd_s
*/
if ((sai->synchronous[TX] && !sai->synchronous[RX]) ||
(!tx && !sai->synchronous[RX])) {
@@ -156,7 +156,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
FSL_SAI_CR2_DIV_MASK, savediv - 1);
}
-@@ -449,6 +465,7 @@ static int fsl_sai_hw_params(struct snd_
+@@ -450,6 +466,7 @@ static int fsl_sai_hw_params(struct snd_
struct snd_soc_dai *cpu_dai)
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
@@ -164,7 +164,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
unsigned int channels = params_channels(params);
u32 word_width = params_width(params);
-@@ -501,49 +518,35 @@ static int fsl_sai_hw_params(struct snd_
+@@ -502,49 +519,35 @@ static int fsl_sai_hw_params(struct snd_
if (!sai->slave_mode[tx]) {
if (!sai->synchronous[TX] && sai->synchronous[RX] && !tx) {
@@ -226,7 +226,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
FSL_SAI_CR5_WNW_MASK | FSL_SAI_CR5_W0W_MASK |
FSL_SAI_CR5_FBT_MASK, val_cr5);
regmap_write(sai->regmap, FSL_SAI_xMR(tx), ~0UL - ((1 << channels) - 1));
-@@ -571,6 +574,7 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -572,6 +575,7 @@ static int fsl_sai_trigger(struct snd_pc
struct snd_soc_dai *cpu_dai)
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
@@ -234,7 +234,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
u8 channels = substream->runtime->channels;
u32 xcsr, count = 100;
-@@ -581,9 +585,9 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -582,9 +586,9 @@ static int fsl_sai_trigger(struct snd_pc
* Rx sync with Tx clocks: Clear SYNC for Tx, set it for Rx.
* Tx sync with Rx clocks: Clear SYNC for Rx, set it for Tx.
*/
@@ -246,7 +246,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
sai->synchronous[RX] ? FSL_SAI_CR2_SYNC : 0);
/*
-@@ -599,49 +603,50 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -600,49 +604,50 @@ static int fsl_sai_trigger(struct snd_pc
if (tx)
udelay(10);
@@ -311,7 +311,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
FSL_SAI_CSR_FR, FSL_SAI_CSR_FR);
/*
-@@ -654,12 +659,12 @@ static int fsl_sai_trigger(struct snd_pc
+@@ -655,12 +660,12 @@ static int fsl_sai_trigger(struct snd_pc
if (!sai->slave_mode[tx]) {
/* Software Reset for both Tx and Rx */
regmap_write(sai->regmap,
@@ -328,7 +328,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
}
}
break;
-@@ -674,6 +679,7 @@ static int fsl_sai_startup(struct snd_pc
+@@ -675,6 +680,7 @@ static int fsl_sai_startup(struct snd_pc
struct snd_soc_dai *cpu_dai)
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
@@ -336,7 +336,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
int ret;
-@@ -682,7 +688,8 @@ static int fsl_sai_startup(struct snd_pc
+@@ -683,7 +689,8 @@ static int fsl_sai_startup(struct snd_pc
else
sai->is_stream_opened[tx] = true;
@@ -346,7 +346,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
FSL_SAI_CR3_TRCE(sai->dataline[tx]));
ret = snd_pcm_hw_constraint_list(substream->runtime, 0,
-@@ -695,12 +702,14 @@ static void fsl_sai_shutdown(struct snd_
+@@ -696,12 +703,14 @@ static void fsl_sai_shutdown(struct snd_
struct snd_soc_dai *cpu_dai)
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
@@ -362,7 +362,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
sai->is_stream_opened[tx] = false;
}
}
-@@ -719,17 +728,18 @@ static const struct snd_soc_dai_ops fsl_
+@@ -720,17 +729,18 @@ static const struct snd_soc_dai_ops fsl_
static int fsl_sai_dai_probe(struct snd_soc_dai *cpu_dai)
{
struct fsl_sai *sai = dev_get_drvdata(cpu_dai->dev);
@@ -387,7 +387,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
FSL_SAI_MAXBURST_RX - 1);
snd_soc_dai_init_dma_data(cpu_dai, &sai->dma_params_tx,
-@@ -767,41 +777,55 @@ static const struct snd_soc_component_dr
+@@ -768,41 +778,55 @@ static const struct snd_soc_component_dr
.name = "fsl-sai",
};
@@ -466,7 +466,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
case FSL_SAI_RDR0:
case FSL_SAI_RDR1:
case FSL_SAI_RFR0:
-@@ -815,9 +839,13 @@ static bool fsl_sai_readable_reg(struct
+@@ -816,9 +840,13 @@ static bool fsl_sai_readable_reg(struct
static bool fsl_sai_volatile_reg(struct device *dev, unsigned int reg)
{
@@ -482,7 +482,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
case FSL_SAI_TFR0:
case FSL_SAI_TFR1:
case FSL_SAI_RFR0:
-@@ -832,22 +860,19 @@ static bool fsl_sai_volatile_reg(struct
+@@ -833,22 +861,19 @@ static bool fsl_sai_volatile_reg(struct
static bool fsl_sai_writeable_reg(struct device *dev, unsigned int reg)
{
@@ -514,7 +514,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
case FSL_SAI_RMR:
return true;
default:
-@@ -855,14 +880,28 @@ static bool fsl_sai_writeable_reg(struct
+@@ -856,14 +881,28 @@ static bool fsl_sai_writeable_reg(struct
}
}
@@ -546,7 +546,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
.readable_reg = fsl_sai_readable_reg,
.volatile_reg = fsl_sai_volatile_reg,
.writeable_reg = fsl_sai_writeable_reg,
-@@ -874,6 +913,7 @@ static const struct of_device_id fsl_sai
+@@ -875,6 +914,7 @@ static const struct of_device_id fsl_sai
{ .compatible = "fsl,imx6sx-sai", .data = &fsl_sai_imx6sx },
{ .compatible = "fsl,imx6ul-sai", .data = &fsl_sai_imx6ul },
{ .compatible = "fsl,imx7ulp-sai", .data = &fsl_sai_imx7ulp },
@@ -554,7 +554,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, fsl_sai_ids);
-@@ -889,7 +929,8 @@ static int fsl_sai_probe(struct platform
+@@ -890,7 +930,8 @@ static int fsl_sai_probe(struct platform
char tmp[8];
int irq, ret, i;
int index;
@@ -564,7 +564,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
sai = devm_kzalloc(&pdev->dev, sizeof(*sai), GFP_KERNEL);
if (!sai)
-@@ -909,6 +950,9 @@ static int fsl_sai_probe(struct platform
+@@ -910,6 +951,9 @@ static int fsl_sai_probe(struct platform
if (IS_ERR(base))
return PTR_ERR(base);
@@ -574,7 +574,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
sai->regmap = devm_regmap_init_mmio_clk(&pdev->dev,
"bus", base, &fsl_sai_regmap_config);
-@@ -963,11 +1007,11 @@ static int fsl_sai_probe(struct platform
+@@ -964,11 +1008,11 @@ static int fsl_sai_probe(struct platform
}
/* SAI shared interrupt */
@@ -590,7 +590,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
if (ret) {
dev_err(&pdev->dev, "failed to claim irq %u\n", irq);
return ret;
-@@ -1091,6 +1135,7 @@ static int fsl_sai_runtime_suspend(struc
+@@ -1092,6 +1136,7 @@ static int fsl_sai_runtime_suspend(struc
static int fsl_sai_runtime_resume(struct device *dev)
{
struct fsl_sai *sai = dev_get_drvdata(dev);
@@ -598,7 +598,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
int ret;
ret = clk_prepare_enable(sai->bus_clk);
-@@ -1116,11 +1161,11 @@ static int fsl_sai_runtime_resume(struct
+@@ -1117,11 +1162,11 @@ static int fsl_sai_runtime_resume(struct
PM_QOS_CPU_DMA_LATENCY, 0);
regcache_cache_only(sai->regmap, false);
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0028-MLK-15927-1-ASoC-fsl_sai-Fix-noise-when-using-EDMA.patch b/target/linux/layerscape/patches-5.4/801-audio-0028-MLK-15927-1-ASoC-fsl_sai-Fix-noise-when-using-EDMA.patch
index 71554d295a..d3ab26b7c7 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0028-MLK-15927-1-ASoC-fsl_sai-Fix-noise-when-using-EDMA.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0028-MLK-15927-1-ASoC-fsl_sai-Fix-noise-when-using-EDMA.patch
@@ -72,7 +72,7 @@ Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
};
static const unsigned int fsl_sai_rates[] = {
-@@ -692,6 +707,13 @@ static int fsl_sai_startup(struct snd_pc
+@@ -693,6 +708,13 @@ static int fsl_sai_startup(struct snd_pc
FSL_SAI_CR3_TRCE_MASK,
FSL_SAI_CR3_TRCE(sai->dataline[tx]));
@@ -86,7 +86,7 @@ Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
ret = snd_pcm_hw_constraint_list(substream->runtime, 0,
SNDRV_PCM_HW_PARAM_RATE, &fsl_sai_rate_constraints);
-@@ -914,6 +936,7 @@ static const struct of_device_id fsl_sai
+@@ -915,6 +937,7 @@ static const struct of_device_id fsl_sai
{ .compatible = "fsl,imx6ul-sai", .data = &fsl_sai_imx6ul },
{ .compatible = "fsl,imx7ulp-sai", .data = &fsl_sai_imx7ulp },
{ .compatible = "fsl,imx8mq-sai", .data = &fsl_sai_imx8mq },
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0029-MLK-15960-1-ASoC-fsl_sai-update-fifo_depth-for-diffe.patch b/target/linux/layerscape/patches-5.4/801-audio-0029-MLK-15960-1-ASoC-fsl_sai-update-fifo_depth-for-diffe.patch
index d2a7955cae..480ae311e4 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0029-MLK-15960-1-ASoC-fsl_sai-update-fifo_depth-for-diffe.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0029-MLK-15960-1-ASoC-fsl_sai-update-fifo_depth-for-diffe.patch
@@ -32,7 +32,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
.flags = 0,
.reg_offset = 0,
.constrain_period_size = true,
-@@ -759,10 +759,12 @@ static int fsl_sai_dai_probe(struct snd_
+@@ -760,10 +760,12 @@ static int fsl_sai_dai_probe(struct snd_
regmap_write(sai->regmap, FSL_SAI_TCSR(offset), 0);
regmap_write(sai->regmap, FSL_SAI_RCSR(offset), 0);
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0030-MLK-15960-2-ASoC-fsl_sai-refine-the-pm-runtime-funct.patch b/target/linux/layerscape/patches-5.4/801-audio-0030-MLK-15960-2-ASoC-fsl_sai-refine-the-pm-runtime-funct.patch
index 03201fea90..8eb7cb1bac 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0030-MLK-15960-2-ASoC-fsl_sai-refine-the-pm-runtime-funct.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0030-MLK-15960-2-ASoC-fsl_sai-refine-the-pm-runtime-funct.patch
@@ -16,7 +16,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -1097,6 +1097,8 @@ static int fsl_sai_probe(struct platform
+@@ -1098,6 +1098,8 @@ static int fsl_sai_probe(struct platform
pm_runtime_enable(&pdev->dev);
@@ -25,7 +25,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_component,
&sai->cpu_dai_drv, 1);
if (ret)
-@@ -1140,6 +1142,8 @@ static int fsl_sai_runtime_suspend(struc
+@@ -1141,6 +1143,8 @@ static int fsl_sai_runtime_suspend(struc
{
struct fsl_sai *sai = dev_get_drvdata(dev);
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0031-MLK-13975-ASoC-fsl_sai-Refine-master-flag-handling.patch b/target/linux/layerscape/patches-5.4/801-audio-0031-MLK-13975-ASoC-fsl_sai-Refine-master-flag-handling.patch
index cc60638f2b..643606808e 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0031-MLK-13975-ASoC-fsl_sai-Refine-master-flag-handling.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0031-MLK-13975-ASoC-fsl_sai-Refine-master-flag-handling.patch
@@ -16,7 +16,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -368,9 +368,9 @@ static int fsl_sai_set_dai_fmt(struct sn
+@@ -369,9 +369,9 @@ static int fsl_sai_set_dai_fmt(struct sn
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
int ret;
@@ -29,7 +29,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
ret = fsl_sai_set_dai_fmt_tr(cpu_dai, fmt, FSL_FMT_TRANSMITTER);
if (ret) {
-@@ -378,9 +378,9 @@ static int fsl_sai_set_dai_fmt(struct sn
+@@ -379,9 +379,9 @@ static int fsl_sai_set_dai_fmt(struct sn
return ret;
}
@@ -42,7 +42,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
ret = fsl_sai_set_dai_fmt_tr(cpu_dai, fmt, FSL_FMT_RECEIVER);
if (ret)
-@@ -1022,8 +1022,19 @@ static int fsl_sai_probe(struct platform
+@@ -1023,8 +1023,19 @@ static int fsl_sai_probe(struct platform
return -EINVAL;
}
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0032-MLK-16130-1-ASoC-fsl_sai-enable-TCE-RCE-according-to.patch b/target/linux/layerscape/patches-5.4/801-audio-0032-MLK-16130-1-ASoC-fsl_sai-enable-TCE-RCE-according-to.patch
index 25275a27a2..2178da53b8 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0032-MLK-16130-1-ASoC-fsl_sai-enable-TCE-RCE-according-to.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0032-MLK-16130-1-ASoC-fsl_sai-enable-TCE-RCE-according-to.patch
@@ -15,7 +15,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -487,11 +487,14 @@ static int fsl_sai_hw_params(struct snd_
+@@ -488,11 +488,14 @@ static int fsl_sai_hw_params(struct snd_
u32 val_cr4 = 0, val_cr5 = 0;
u32 slots = (channels == 1) ? 2 : channels;
u32 slot_width = word_width;
@@ -30,7 +30,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
if (sai->slot_width)
slot_width = sai->slot_width;
-@@ -558,6 +561,10 @@ static int fsl_sai_hw_params(struct snd_
+@@ -559,6 +562,10 @@ static int fsl_sai_hw_params(struct snd_
FSL_SAI_CR4_FCOMB_MASK, FSL_SAI_CR4_FCOMB_SOFT);
}
@@ -41,7 +41,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
regmap_update_bits(sai->regmap, FSL_SAI_xCR4(tx, offset),
FSL_SAI_CR4_SYWD_MASK | FSL_SAI_CR4_FRSZ_MASK,
val_cr4);
-@@ -573,8 +580,12 @@ static int fsl_sai_hw_free(struct snd_pc
+@@ -574,8 +581,12 @@ static int fsl_sai_hw_free(struct snd_pc
struct snd_soc_dai *cpu_dai)
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
@@ -54,7 +54,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
if (!sai->slave_mode[tx] &&
sai->mclk_streams & BIT(substream->stream)) {
clk_disable_unprepare(sai->mclk_clk[sai->mclk_id[tx]]);
-@@ -694,7 +705,6 @@ static int fsl_sai_startup(struct snd_pc
+@@ -695,7 +706,6 @@ static int fsl_sai_startup(struct snd_pc
struct snd_soc_dai *cpu_dai)
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
@@ -62,7 +62,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
int ret;
-@@ -724,7 +734,6 @@ static void fsl_sai_shutdown(struct snd_
+@@ -725,7 +735,6 @@ static void fsl_sai_shutdown(struct snd_
struct snd_soc_dai *cpu_dai)
{
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0033-MLK-13946-3-ASoC-fsl_sai-fix-the-xMR-setting.patch b/target/linux/layerscape/patches-5.4/801-audio-0033-MLK-13946-3-ASoC-fsl_sai-fix-the-xMR-setting.patch
index c353ba4ae4..fa9ae220a2 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0033-MLK-13946-3-ASoC-fsl_sai-fix-the-xMR-setting.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0033-MLK-13946-3-ASoC-fsl_sai-fix-the-xMR-setting.patch
@@ -24,7 +24,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
.fifos = 1,
.fifo_depth = 64,
.flags = 0,
-@@ -571,7 +571,7 @@ static int fsl_sai_hw_params(struct snd_
+@@ -572,7 +572,7 @@ static int fsl_sai_hw_params(struct snd_
regmap_update_bits(sai->regmap, FSL_SAI_xCR5(tx, offset),
FSL_SAI_CR5_WNW_MASK | FSL_SAI_CR5_W0W_MASK |
FSL_SAI_CR5_FBT_MASK, val_cr5);
@@ -33,7 +33,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
return 0;
}
-@@ -858,11 +858,23 @@ static bool fsl_sai_readable_reg(struct
+@@ -859,11 +859,23 @@ static bool fsl_sai_readable_reg(struct
switch (reg) {
case FSL_SAI_TFR0:
case FSL_SAI_TFR1:
@@ -57,7 +57,7 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
case FSL_SAI_RMR:
return true;
default:
-@@ -881,8 +893,20 @@ static bool fsl_sai_volatile_reg(struct
+@@ -882,8 +894,20 @@ static bool fsl_sai_volatile_reg(struct
switch (reg) {
case FSL_SAI_TFR0:
case FSL_SAI_TFR1:
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0034-MLK-13946-8-ASoC-fsl_sai-use-min-channels-slots-for-.patch b/target/linux/layerscape/patches-5.4/801-audio-0034-MLK-13946-8-ASoC-fsl_sai-use-min-channels-slots-for-.patch
index ab89291189..fc90f2616f 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0034-MLK-13946-8-ASoC-fsl_sai-use-min-channels-slots-for-.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0034-MLK-13946-8-ASoC-fsl_sai-use-min-channels-slots-for-.patch
@@ -15,7 +15,7 @@ Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
-@@ -571,8 +571,8 @@ static int fsl_sai_hw_params(struct snd_
+@@ -572,8 +572,8 @@ static int fsl_sai_hw_params(struct snd_
regmap_update_bits(sai->regmap, FSL_SAI_xCR5(tx, offset),
FSL_SAI_CR5_WNW_MASK | FSL_SAI_CR5_W0W_MASK |
FSL_SAI_CR5_FBT_MASK, val_cr5);
diff --git a/target/linux/layerscape/patches-5.4/801-audio-0035-MLK-16929-1-ASoC-fsl_sai-add-bitclk_freq.patch b/target/linux/layerscape/patches-5.4/801-audio-0035-MLK-16929-1-ASoC-fsl_sai-add-bitclk_freq.patch
index c095f5ff35..7bdd15ccc1 100644
--- a/target/linux/layerscape/patches-5.4/801-audio-0035-MLK-16929-1-ASoC-fsl_sai-add-bitclk_freq.patch
+++ b/target/linux/layerscape/patches-5.4/801-audio-0035-MLK-16929-1-ASoC-fsl_sai-add-bitclk_freq.patch
@@ -30,7 +30,7 @@ Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
ret = fsl_sai_set_dai_sysclk_tr(cpu_dai, clk_id, freq,
FSL_FMT_TRANSMITTER);
if (ret) {
-@@ -499,7 +502,11 @@ static int fsl_sai_hw_params(struct snd_
+@@ -500,7 +503,11 @@ static int fsl_sai_hw_params(struct snd_
slot_width = sai->slot_width;
if (!sai->slave_mode[tx]) {
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;
diff --git a/target/linux/layerscape/patches-5.4/805-display-0041-drm-fourcc-add-a-10bits-fully-packed-variant-of-NV12.patch b/target/linux/layerscape/patches-5.4/805-display-0041-drm-fourcc-add-a-10bits-fully-packed-variant-of-NV12.patch
index 3bccbbd138..70f449dd75 100644
--- a/target/linux/layerscape/patches-5.4/805-display-0041-drm-fourcc-add-a-10bits-fully-packed-variant-of-NV12.patch
+++ b/target/linux/layerscape/patches-5.4/805-display-0041-drm-fourcc-add-a-10bits-fully-packed-variant-of-NV12.patch
@@ -16,7 +16,7 @@ Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
--- a/drivers/gpu/drm/drm_fourcc.c
+++ b/drivers/gpu/drm/drm_fourcc.c
-@@ -261,6 +261,9 @@ const struct drm_format_info *__drm_form
+@@ -265,6 +265,9 @@ const struct drm_format_info *__drm_form
{ .format = DRM_FORMAT_P016, .depth = 0, .num_planes = 2,
.char_per_block = { 2, 4, 0 }, .block_w = { 1, 0, 0 }, .block_h = { 1, 0, 0 },
.hsub = 2, .vsub = 2, .is_yuv = true},
diff --git a/target/linux/layerscape/patches-5.4/819-uart-0001-tty-serial-lpuart-add-power-domain-support.patch b/target/linux/layerscape/patches-5.4/819-uart-0001-tty-serial-lpuart-add-power-domain-support.patch
index 120a14c3be..9050a4df75 100644
--- a/target/linux/layerscape/patches-5.4/819-uart-0001-tty-serial-lpuart-add-power-domain-support.patch
+++ b/target/linux/layerscape/patches-5.4/819-uart-0001-tty-serial-lpuart-add-power-domain-support.patch
@@ -27,7 +27,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
#include <linux/serial_core.h>
#include <linux/slab.h>
#include <linux/tty_flip.h>
-@@ -2394,6 +2396,54 @@ static struct uart_driver lpuart_reg = {
+@@ -2420,6 +2422,54 @@ static struct uart_driver lpuart_reg = {
.cons = LPUART_CONSOLE,
};
@@ -82,7 +82,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
static int lpuart_probe(struct platform_device *pdev)
{
const struct of_device_id *of_id = of_match_device(lpuart_dt_ids,
-@@ -2431,6 +2481,10 @@ static int lpuart_probe(struct platform_
+@@ -2457,6 +2507,10 @@ static int lpuart_probe(struct platform_
sport->port.rs485_config = lpuart_config_rs485;
diff --git a/target/linux/layerscape/patches-5.4/819-uart-0002-tty-serial-fsl_lpuart-add-modem-device-reset.patch b/target/linux/layerscape/patches-5.4/819-uart-0002-tty-serial-fsl_lpuart-add-modem-device-reset.patch
index 7d6efc38c5..9427ed667c 100644
--- a/target/linux/layerscape/patches-5.4/819-uart-0002-tty-serial-fsl_lpuart-add-modem-device-reset.patch
+++ b/target/linux/layerscape/patches-5.4/819-uart-0002-tty-serial-fsl_lpuart-add-modem-device-reset.patch
@@ -20,7 +20,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
#include <linux/serial_core.h>
#include <linux/slab.h>
#include <linux/tty_flip.h>
-@@ -1552,8 +1553,17 @@ static void lpuart32_configure(struct lp
+@@ -1572,8 +1573,17 @@ static void lpuart32_configure(struct lp
static int lpuart32_startup(struct uart_port *port)
{
struct lpuart_port *sport = container_of(port, struct lpuart_port, port);
diff --git a/target/linux/layerscape/patches-5.4/819-uart-0005-tty-serial-fsl_lpuart-enable-dma-mode-for-imx8qxp.patch b/target/linux/layerscape/patches-5.4/819-uart-0005-tty-serial-fsl_lpuart-enable-dma-mode-for-imx8qxp.patch
index 82438c8591..23c99d19cf 100644
--- a/target/linux/layerscape/patches-5.4/819-uart-0005-tty-serial-fsl_lpuart-enable-dma-mode-for-imx8qxp.patch
+++ b/target/linux/layerscape/patches-5.4/819-uart-0005-tty-serial-fsl_lpuart-enable-dma-mode-for-imx8qxp.patch
@@ -351,7 +351,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
}
static void lpuart_dma_rx_free(struct uart_port *port)
-@@ -1413,8 +1525,10 @@ static void lpuart_setup_watermark(struc
+@@ -1433,8 +1545,10 @@ static void lpuart_setup_watermark(struc
writeb(UARTSFIFO_RXUF, sport->port.membase + UARTSFIFO);
}
@@ -363,7 +363,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
/* Restore cr2 */
writeb(cr2_saved, sport->port.membase + UARTCR2);
-@@ -1435,6 +1549,7 @@ static void lpuart32_setup_watermark(str
+@@ -1455,6 +1569,7 @@ static void lpuart32_setup_watermark(str
{
unsigned long val, ctrl;
unsigned long ctrl_saved;
@@ -371,7 +371,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
ctrl = lpuart32_read(&sport->port, UARTCTRL);
ctrl_saved = ctrl;
-@@ -1446,12 +1561,26 @@ static void lpuart32_setup_watermark(str
+@@ -1466,12 +1581,26 @@ static void lpuart32_setup_watermark(str
val = lpuart32_read(&sport->port, UARTFIFO);
val |= UARTFIFO_TXFE | UARTFIFO_RXFE;
val |= UARTFIFO_TXFLUSH | UARTFIFO_RXFLUSH;
@@ -399,7 +399,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
/* Restore cr2 */
lpuart32_write(&sport->port, ctrl_saved, UARTCTRL);
}
-@@ -1463,17 +1592,29 @@ static void lpuart32_setup_watermark_ena
+@@ -1483,17 +1612,29 @@ static void lpuart32_setup_watermark_ena
lpuart32_setup_watermark(sport);
temp = lpuart32_read(&sport->port, UARTCTRL);
@@ -430,7 +430,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
static void lpuart_tx_dma_startup(struct lpuart_port *sport)
{
u32 uartbaud;
-@@ -1537,19 +1678,23 @@ static int lpuart_startup(struct uart_po
+@@ -1557,19 +1698,23 @@ static int lpuart_startup(struct uart_po
return 0;
}
@@ -461,7 +461,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
if (!sport->lpuart_dma_tx_use)
temp |= UARTCTRL_TIE;
lpuart32_write(&sport->port, temp, UARTCTRL);
-@@ -1593,12 +1738,12 @@ static int lpuart32_startup(struct uart_
+@@ -1613,12 +1758,12 @@ static int lpuart32_startup(struct uart_
spin_lock_irqsave(&sport->port.lock, flags);
@@ -476,7 +476,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
lpuart32_configure(sport);
spin_unlock_irqrestore(&sport->port.lock, flags);
-@@ -1608,7 +1753,7 @@ static int lpuart32_startup(struct uart_
+@@ -1628,7 +1773,7 @@ static int lpuart32_startup(struct uart_
static void lpuart_dma_shutdown(struct lpuart_port *sport)
{
if (sport->lpuart_dma_rx_use) {
@@ -485,7 +485,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
lpuart_dma_rx_free(&sport->port);
sport->lpuart_dma_rx_use = false;
}
-@@ -1651,11 +1796,22 @@ static void lpuart32_shutdown(struct uar
+@@ -1671,11 +1816,22 @@ static void lpuart32_shutdown(struct uar
spin_lock_irqsave(&port->lock, flags);
@@ -510,7 +510,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
spin_unlock_irqrestore(&port->lock, flags);
-@@ -1752,10 +1908,10 @@ lpuart_set_termios(struct uart_port *por
+@@ -1772,10 +1928,10 @@ lpuart_set_termios(struct uart_port *por
* baud rate and restart Rx DMA path.
*
* Since timer function acqures sport->port.lock, need to stop before
@@ -523,7 +523,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
lpuart_dma_rx_free(&sport->port);
}
-@@ -1967,10 +2123,10 @@ lpuart32_set_termios(struct uart_port *p
+@@ -1987,10 +2143,10 @@ lpuart32_set_termios(struct uart_port *p
* baud rate and restart Rx DMA path.
*
* Since timer function acqures sport->port.lock, need to stop before
@@ -536,7 +536,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
lpuart_dma_rx_free(&sport->port);
}
-@@ -2483,6 +2639,10 @@ static int lpuart_probe(struct platform_
+@@ -2509,6 +2665,10 @@ static int lpuart_probe(struct platform_
sport->port.dev = &pdev->dev;
sport->port.type = PORT_LPUART;
sport->devtype = sdata->devtype;
@@ -547,7 +547,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
ret = platform_get_irq(pdev, 0);
if (ret < 0)
return ret;
-@@ -2633,7 +2793,7 @@ static int lpuart_suspend(struct device
+@@ -2659,7 +2819,7 @@ static int lpuart_suspend(struct device
* Rx DMA path before suspend and start Rx DMA path on resume.
*/
if (irq_wake) {
diff --git a/target/linux/layerscape/patches-5.4/819-uart-0008-MLK-21445-serial-fsl_lpuart-do-HW-reset-for-communic.patch b/target/linux/layerscape/patches-5.4/819-uart-0008-MLK-21445-serial-fsl_lpuart-do-HW-reset-for-communic.patch
index 73d80925c7..3849ac2225 100644
--- a/target/linux/layerscape/patches-5.4/819-uart-0008-MLK-21445-serial-fsl_lpuart-do-HW-reset-for-communic.patch
+++ b/target/linux/layerscape/patches-5.4/819-uart-0008-MLK-21445-serial-fsl_lpuart-do-HW-reset-for-communic.patch
@@ -105,7 +105,7 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com>
static void lpuart_stop_tx(struct uart_port *port)
{
unsigned char temp;
-@@ -2726,6 +2768,10 @@ static int lpuart_probe(struct platform_
+@@ -2752,6 +2794,10 @@ static int lpuart_probe(struct platform_
if (ret)
goto failed_attach_port;
@@ -116,7 +116,7 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com>
uart_get_rs485_mode(&pdev->dev, &sport->port.rs485);
if (sport->port.rs485.flags & SER_RS485_RX_DURING_TX)
-@@ -2749,6 +2795,8 @@ static int lpuart_probe(struct platform_
+@@ -2775,6 +2821,8 @@ static int lpuart_probe(struct platform_
return 0;
diff --git a/target/linux/layerscape/patches-5.4/819-uart-0009-MLK-17133-02-tty-serial-lpuart-add-runtime-pm-suppor.patch b/target/linux/layerscape/patches-5.4/819-uart-0009-MLK-17133-02-tty-serial-lpuart-add-runtime-pm-suppor.patch
index afc5d3207b..201e792681 100644
--- a/target/linux/layerscape/patches-5.4/819-uart-0009-MLK-17133-02-tty-serial-lpuart-add-runtime-pm-suppor.patch
+++ b/target/linux/layerscape/patches-5.4/819-uart-0009-MLK-17133-02-tty-serial-lpuart-add-runtime-pm-suppor.patch
@@ -43,7 +43,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
/* return TIOCSER_TEMT when transmitter is not busy */
static unsigned int lpuart_tx_empty(struct uart_port *port)
{
-@@ -2283,6 +2298,7 @@ static const struct uart_ops lpuart_pops
+@@ -2309,6 +2324,7 @@ static const struct uart_ops lpuart_pops
.break_ctl = lpuart_break_ctl,
.startup = lpuart_startup,
.shutdown = lpuart_shutdown,
@@ -51,7 +51,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
.set_termios = lpuart_set_termios,
.type = lpuart_type,
.request_port = lpuart_request_port,
-@@ -2307,6 +2323,7 @@ static const struct uart_ops lpuart32_po
+@@ -2333,6 +2349,7 @@ static const struct uart_ops lpuart32_po
.break_ctl = lpuart32_break_ctl,
.startup = lpuart32_startup,
.shutdown = lpuart32_shutdown,
@@ -59,7 +59,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
.set_termios = lpuart32_set_termios,
.type = lpuart_type,
.request_port = lpuart_request_port,
-@@ -2764,6 +2781,11 @@ static int lpuart_probe(struct platform_
+@@ -2790,6 +2807,11 @@ static int lpuart_probe(struct platform_
if (ret)
goto failed_irq_request;
@@ -71,7 +71,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
ret = uart_add_one_port(&lpuart_reg, &sport->port);
if (ret)
goto failed_attach_port;
-@@ -2798,6 +2820,9 @@ static int lpuart_probe(struct platform_
+@@ -2824,6 +2846,9 @@ static int lpuart_probe(struct platform_
failed_reset:
uart_remove_one_port(&lpuart_reg, &sport->port);
failed_attach_port:
@@ -81,7 +81,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
failed_irq_request:
lpuart_disable_clks(sport);
return ret;
-@@ -2817,15 +2842,41 @@ static int lpuart_remove(struct platform
+@@ -2843,15 +2868,41 @@ static int lpuart_remove(struct platform
if (sport->dma_rx_chan)
dma_release_channel(sport->dma_rx_chan);
@@ -123,7 +123,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
if (lpuart_is_32(sport)) {
/* disable Rx/Tx and interrupts */
-@@ -2839,10 +2890,14 @@ static int lpuart_suspend(struct device
+@@ -2865,10 +2916,14 @@ static int lpuart_suspend(struct device
writeb(temp, sport->port.membase + UARTCR2);
}
@@ -138,7 +138,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
if (sport->lpuart_dma_rx_use) {
/*
-@@ -2873,9 +2928,6 @@ static int lpuart_suspend(struct device
+@@ -2899,9 +2954,6 @@ static int lpuart_suspend(struct device
dmaengine_terminate_all(sport->dma_tx_chan);
}
@@ -148,7 +148,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
return 0;
}
-@@ -2883,9 +2935,11 @@ static int lpuart_resume(struct device *
+@@ -2909,9 +2961,11 @@ static int lpuart_resume(struct device *
{
struct lpuart_port *sport = dev_get_drvdata(dev);
bool irq_wake = irqd_is_wakeup_set(irq_get_irq_data(sport->port.irq));
@@ -162,7 +162,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
if (lpuart_is_32(sport))
lpuart32_setup_watermark_enable(sport);
-@@ -2906,13 +2960,23 @@ static int lpuart_resume(struct device *
+@@ -2932,13 +2986,23 @@ static int lpuart_resume(struct device *
if (lpuart_is_32(sport))
lpuart32_configure(sport);
@@ -188,7 +188,7 @@ Reviewed-by: Robin Gong <yibin.gong@nxp.com>
static struct platform_driver lpuart_driver = {
.probe = lpuart_probe,
-@@ -2920,7 +2984,7 @@ static struct platform_driver lpuart_dri
+@@ -2946,7 +3010,7 @@ static struct platform_driver lpuart_dri
.driver = {
.name = "fsl-lpuart",
.of_match_table = lpuart_dt_ids,
diff --git a/target/linux/layerscape/patches-5.4/819-uart-0010-tty-serial-lpuart-enable-wakeup-source-for-lpuart.patch b/target/linux/layerscape/patches-5.4/819-uart-0010-tty-serial-lpuart-enable-wakeup-source-for-lpuart.patch
index 5a9304ce13..be1a5675a6 100644
--- a/target/linux/layerscape/patches-5.4/819-uart-0010-tty-serial-lpuart-enable-wakeup-source-for-lpuart.patch
+++ b/target/linux/layerscape/patches-5.4/819-uart-0010-tty-serial-lpuart-enable-wakeup-source-for-lpuart.patch
@@ -28,7 +28,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
#include <linux/pm_domain.h>
#include <linux/pm_runtime.h>
#include <linux/reset.h>
-@@ -1719,10 +1720,23 @@ static void lpuart_rx_dma_startup(struct
+@@ -1739,10 +1740,23 @@ static void lpuart_rx_dma_startup(struct
}
}
@@ -53,7 +53,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
unsigned char temp;
/* determine FIFO size and enable FIFO mode */
-@@ -1735,14 +1749,7 @@ static int lpuart_startup(struct uart_po
+@@ -1755,14 +1769,7 @@ static int lpuart_startup(struct uart_po
sport->rxfifo_size = UARTFIFO_DEPTH((temp >> UARTPFIFO_RXSIZE_OFF) &
UARTPFIFO_FIFOSIZE_MASK);
@@ -69,7 +69,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
return 0;
}
-@@ -1769,11 +1776,27 @@ static void lpuart32_configure(struct lp
+@@ -1789,11 +1796,27 @@ static void lpuart32_configure(struct lp
lpuart32_write(&sport->port, temp, UARTCTRL);
}
@@ -98,7 +98,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
unsigned long temp;
int ret;
-@@ -1805,17 +1828,8 @@ static int lpuart32_startup(struct uart_
+@@ -1825,17 +1848,8 @@ static int lpuart32_startup(struct uart_
sport->port.fifosize = sport->txfifo_size;
}
@@ -108,16 +108,16 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
-
- lpuart_rx_dma_startup(sport);
- lpuart_tx_dma_startup(sport);
--
-- lpuart32_setup_watermark_enable(sport);
-- lpuart32_configure(sport);
+ lpuart32_hw_setup(sport);
+- lpuart32_setup_watermark_enable(sport);
+- lpuart32_configure(sport);
+-
- spin_unlock_irqrestore(&sport->port.lock, flags);
return 0;
}
-@@ -2867,108 +2881,205 @@ static int lpuart_runtime_resume(struct
+@@ -2893,108 +2907,205 @@ static int lpuart_runtime_resume(struct
return lpuart_enable_clks(sport);
};
@@ -197,8 +197,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
- }
+ return false;
+}
-
-- /* Disable Rx DMA to use UART port as wakeup source */
++
+static int lpuart_suspend_noirq(struct device *dev)
+{
+ struct lpuart_port *sport = dev_get_drvdata(dev);
@@ -208,7 +207,8 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
+ serial_lpuart_enable_wakeup(sport, !!irq_wake);
+
+ pinctrl_pm_select_sleep_state(dev);
-+
+
+- /* Disable Rx DMA to use UART port as wakeup source */
+ return 0;
+}
+
@@ -302,7 +302,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
+ ~UARTCR5_RDMAS, sport->port.membase + UARTCR5);
+ }
+ spin_unlock_irqrestore(&sport->port.lock, flags);
-+ }
+ }
+
+ if (sport->lpuart_dma_tx_use) {
+ spin_lock_irqsave(&sport->port.lock, flags);
@@ -318,7 +318,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
+ spin_unlock_irqrestore(&sport->port.lock, flags);
+ sport->dma_tx_in_progress = false;
+ dmaengine_terminate_all(sport->dma_tx_chan);
- }
++ }
+ } else if (pm_runtime_active(sport->port.dev)) {
+ lpuart_disable_clks(sport);
+ pm_runtime_disable(sport->port.dev);
diff --git a/target/linux/layerscape/patches-5.4/819-uart-0011-serial-fsl_lpuart-enable-two-stop-bits.patch b/target/linux/layerscape/patches-5.4/819-uart-0011-serial-fsl_lpuart-enable-two-stop-bits.patch
index 76a397a4a2..b32f946b01 100644
--- a/target/linux/layerscape/patches-5.4/819-uart-0011-serial-fsl_lpuart-enable-two-stop-bits.patch
+++ b/target/linux/layerscape/patches-5.4/819-uart-0011-serial-fsl_lpuart-enable-two-stop-bits.patch
@@ -14,7 +14,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
-@@ -2134,11 +2134,12 @@ lpuart32_set_termios(struct uart_port *p
+@@ -2154,11 +2154,12 @@ lpuart32_set_termios(struct uart_port *p
{
struct lpuart_port *sport = container_of(port, struct lpuart_port, port);
unsigned long flags;
@@ -28,7 +28,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
modem = lpuart32_read(&sport->port, UARTMODIR);
/*
* only support CS8 and CS7, and for CS7 must enable PE.
-@@ -2175,7 +2176,9 @@ lpuart32_set_termios(struct uart_port *p
+@@ -2195,7 +2196,9 @@ lpuart32_set_termios(struct uart_port *p
}
if (termios->c_cflag & CSTOPB)
@@ -39,7 +39,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
/* parity must be enabled when CS7 to match 8-bits format */
if ((termios->c_cflag & CSIZE) == CS7)
-@@ -2246,6 +2249,7 @@ lpuart32_set_termios(struct uart_port *p
+@@ -2272,6 +2275,7 @@ lpuart32_set_termios(struct uart_port *p
lpuart32_write(&sport->port, old_ctrl & ~(UARTCTRL_TE | UARTCTRL_RE),
UARTCTRL);
diff --git a/target/linux/layerscape/patches-5.4/819-uart-0013-LF-484-tty-serial-lpuart-support-UPIO_MEM32-for-lpua.patch b/target/linux/layerscape/patches-5.4/819-uart-0013-LF-484-tty-serial-lpuart-support-UPIO_MEM32-for-lpua.patch
index 522d7023ca..cac8eb8d7f 100644
--- a/target/linux/layerscape/patches-5.4/819-uart-0013-LF-484-tty-serial-lpuart-support-UPIO_MEM32-for-lpua.patch
+++ b/target/linux/layerscape/patches-5.4/819-uart-0013-LF-484-tty-serial-lpuart-support-UPIO_MEM32-for-lpua.patch
@@ -24,7 +24,7 @@ Signed-off-by: Peng Fan <peng.fan@nxp.com>
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
-@@ -2617,7 +2617,9 @@ static int __init lpuart32_early_console
+@@ -2643,7 +2643,9 @@ static int __init lpuart32_early_console
if (!device->port.membase)
return -ENODEV;