From: Greg Kroah-Hartman Date: Thu, 16 Sep 2021 15:31:05 +0000 (+0200) Subject: drop spi-imx-remove-err009165-workaround-on-i.mx6ul.patch from 5.13 and 5.14 X-Git-Tag: v5.10.67~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=95865165a50321f376bf6d38976decdb599ceb78;p=thirdparty%2Fkernel%2Fstable-queue.git drop spi-imx-remove-err009165-workaround-on-i.mx6ul.patch from 5.13 and 5.14 --- diff --git a/queue-5.13/series b/queue-5.13/series index 8716bee6dd6..16f1998e236 100644 --- a/queue-5.13/series +++ b/queue-5.13/series @@ -185,7 +185,6 @@ media-platform-stm32-unprepare-clocks-at-handling-er.patch media-atomisp-fix-runtime-pm-imbalance-in-atomisp_pc.patch media-atomisp-pci-fix-error-return-code-in-atomisp_p.patch nfp-fix-return-statement-in-nfp_net_parse_meta.patch -spi-imx-remove-err009165-workaround-on-i.mx6ul.patch ethtool-improve-compat-ioctl-handling.patch drm-amdgpu-fix-a-printing-message.patch drm-amd-amdgpu-update-debugfs-link_settings-output-l.patch diff --git a/queue-5.13/spi-imx-remove-err009165-workaround-on-i.mx6ul.patch b/queue-5.13/spi-imx-remove-err009165-workaround-on-i.mx6ul.patch deleted file mode 100644 index ce3e90c9dd0..00000000000 --- a/queue-5.13/spi-imx-remove-err009165-workaround-on-i.mx6ul.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 1ea3c7e76a2dbff4ac9e25ef08ce67ecaabb803a Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 14 Jul 2021 18:20:48 +0800 -Subject: spi: imx: remove ERR009165 workaround on i.mx6ul - -From: Robin Gong - -[ Upstream commit 8eb1252bbedfb0e800bbbd3e9055a7db0ae2cac9 ] - -ERR009165 fixed on i.mx6ul/6ull/6sll. All other i.mx6/7 and -i.mx8m/8mm still need this errata. Please refer to nxp official -errata document from https://www.nxp.com/ . - -For removing workaround on those chips. Add new i.mx6ul type. - -Signed-off-by: Robin Gong -Reviewed-by: Lucas Stach -Acked-by: Mark Brown -Signed-off-by: Shawn Guo -Signed-off-by: Sasha Levin ---- - drivers/spi/spi-imx.c | 39 ++++++++++++++++++++++++++++++++++++--- - 1 file changed, 36 insertions(+), 3 deletions(-) - -diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c -index ac86b3d1052d..113afee6a3c8 100644 ---- a/drivers/spi/spi-imx.c -+++ b/drivers/spi/spi-imx.c -@@ -77,6 +77,11 @@ struct spi_imx_devtype_data { - bool has_slavemode; - unsigned int fifo_size; - bool dynamic_burst; -+ /* -+ * ERR009165 fixed or not: -+ * https://www.nxp.com/docs/en/errata/IMX6DQCE.pdf -+ */ -+ bool tx_glitch_fixed; - enum spi_imx_devtype devtype; - }; - -@@ -622,8 +627,14 @@ static int mx51_ecspi_prepare_transfer(struct spi_imx_data *spi_imx, - ctrl |= mx51_ecspi_clkdiv(spi_imx, spi_imx->spi_bus_clk, &clk); - spi_imx->spi_bus_clk = clk; - -- /* ERR009165: work in XHC mode as PIO */ -- ctrl &= ~MX51_ECSPI_CTRL_SMC; -+ /* -+ * ERR009165: work in XHC mode instead of SMC as PIO on the chips -+ * before i.mx6ul. -+ */ -+ if (spi_imx->usedma && spi_imx->devtype_data->tx_glitch_fixed) -+ ctrl |= MX51_ECSPI_CTRL_SMC; -+ else -+ ctrl &= ~MX51_ECSPI_CTRL_SMC; - - writel(ctrl, spi_imx->base + MX51_ECSPI_CTRL); - -@@ -632,12 +643,16 @@ static int mx51_ecspi_prepare_transfer(struct spi_imx_data *spi_imx, - - static void mx51_setup_wml(struct spi_imx_data *spi_imx) - { -+ u32 tx_wml = 0; -+ -+ if (spi_imx->devtype_data->tx_glitch_fixed) -+ tx_wml = spi_imx->wml; - /* - * Configure the DMA register: setup the watermark - * and enable DMA request. - */ - writel(MX51_ECSPI_DMA_RX_WML(spi_imx->wml - 1) | -- MX51_ECSPI_DMA_TX_WML(0) | -+ MX51_ECSPI_DMA_TX_WML(tx_wml) | - MX51_ECSPI_DMA_RXT_WML(spi_imx->wml) | - MX51_ECSPI_DMA_TEDEN | MX51_ECSPI_DMA_RXDEN | - MX51_ECSPI_DMA_RXTDEN, spi_imx->base + MX51_ECSPI_DMA); -@@ -1028,6 +1043,23 @@ static struct spi_imx_devtype_data imx53_ecspi_devtype_data = { - .devtype = IMX53_ECSPI, - }; - -+static struct spi_imx_devtype_data imx6ul_ecspi_devtype_data = { -+ .intctrl = mx51_ecspi_intctrl, -+ .prepare_message = mx51_ecspi_prepare_message, -+ .prepare_transfer = mx51_ecspi_prepare_transfer, -+ .trigger = mx51_ecspi_trigger, -+ .rx_available = mx51_ecspi_rx_available, -+ .reset = mx51_ecspi_reset, -+ .setup_wml = mx51_setup_wml, -+ .fifo_size = 64, -+ .has_dmamode = true, -+ .dynamic_burst = true, -+ .has_slavemode = true, -+ .tx_glitch_fixed = true, -+ .disable = mx51_ecspi_disable, -+ .devtype = IMX51_ECSPI, -+}; -+ - static const struct of_device_id spi_imx_dt_ids[] = { - { .compatible = "fsl,imx1-cspi", .data = &imx1_cspi_devtype_data, }, - { .compatible = "fsl,imx21-cspi", .data = &imx21_cspi_devtype_data, }, -@@ -1036,6 +1068,7 @@ static const struct of_device_id spi_imx_dt_ids[] = { - { .compatible = "fsl,imx35-cspi", .data = &imx35_cspi_devtype_data, }, - { .compatible = "fsl,imx51-ecspi", .data = &imx51_ecspi_devtype_data, }, - { .compatible = "fsl,imx53-ecspi", .data = &imx53_ecspi_devtype_data, }, -+ { .compatible = "fsl,imx6ul-ecspi", .data = &imx6ul_ecspi_devtype_data, }, - { /* sentinel */ } - }; - MODULE_DEVICE_TABLE(of, spi_imx_dt_ids); --- -2.30.2 - diff --git a/queue-5.14/series b/queue-5.14/series index 703cfd28213..37bede0d692 100644 --- a/queue-5.14/series +++ b/queue-5.14/series @@ -209,7 +209,6 @@ media-platform-stm32-unprepare-clocks-at-handling-er.patch media-atomisp-fix-runtime-pm-imbalance-in-atomisp_pc.patch media-atomisp-pci-fix-error-return-code-in-atomisp_p.patch nfp-fix-return-statement-in-nfp_net_parse_meta.patch -spi-imx-remove-err009165-workaround-on-i.mx6ul.patch ethtool-improve-compat-ioctl-handling.patch drm-amd-display-fixed-hardware-power-down-bypass-dur.patch drm-amdgpu-fix-a-printing-message.patch diff --git a/queue-5.14/spi-imx-remove-err009165-workaround-on-i.mx6ul.patch b/queue-5.14/spi-imx-remove-err009165-workaround-on-i.mx6ul.patch deleted file mode 100644 index 64e5cfcbb29..00000000000 --- a/queue-5.14/spi-imx-remove-err009165-workaround-on-i.mx6ul.patch +++ /dev/null @@ -1,110 +0,0 @@ -From b7dcd66347e8fb1009218871650ec1cc157d1074 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 14 Jul 2021 18:20:48 +0800 -Subject: spi: imx: remove ERR009165 workaround on i.mx6ul - -From: Robin Gong - -[ Upstream commit 8eb1252bbedfb0e800bbbd3e9055a7db0ae2cac9 ] - -ERR009165 fixed on i.mx6ul/6ull/6sll. All other i.mx6/7 and -i.mx8m/8mm still need this errata. Please refer to nxp official -errata document from https://www.nxp.com/ . - -For removing workaround on those chips. Add new i.mx6ul type. - -Signed-off-by: Robin Gong -Reviewed-by: Lucas Stach -Acked-by: Mark Brown -Signed-off-by: Shawn Guo -Signed-off-by: Sasha Levin ---- - drivers/spi/spi-imx.c | 39 ++++++++++++++++++++++++++++++++++++--- - 1 file changed, 36 insertions(+), 3 deletions(-) - -diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c -index d89b11205815..289ed3d4eda2 100644 ---- a/drivers/spi/spi-imx.c -+++ b/drivers/spi/spi-imx.c -@@ -77,6 +77,11 @@ struct spi_imx_devtype_data { - bool has_slavemode; - unsigned int fifo_size; - bool dynamic_burst; -+ /* -+ * ERR009165 fixed or not: -+ * https://www.nxp.com/docs/en/errata/IMX6DQCE.pdf -+ */ -+ bool tx_glitch_fixed; - enum spi_imx_devtype devtype; - }; - -@@ -622,8 +627,14 @@ static int mx51_ecspi_prepare_transfer(struct spi_imx_data *spi_imx, - ctrl |= mx51_ecspi_clkdiv(spi_imx, spi_imx->spi_bus_clk, &clk); - spi_imx->spi_bus_clk = clk; - -- /* ERR009165: work in XHC mode as PIO */ -- ctrl &= ~MX51_ECSPI_CTRL_SMC; -+ /* -+ * ERR009165: work in XHC mode instead of SMC as PIO on the chips -+ * before i.mx6ul. -+ */ -+ if (spi_imx->usedma && spi_imx->devtype_data->tx_glitch_fixed) -+ ctrl |= MX51_ECSPI_CTRL_SMC; -+ else -+ ctrl &= ~MX51_ECSPI_CTRL_SMC; - - writel(ctrl, spi_imx->base + MX51_ECSPI_CTRL); - -@@ -632,12 +643,16 @@ static int mx51_ecspi_prepare_transfer(struct spi_imx_data *spi_imx, - - static void mx51_setup_wml(struct spi_imx_data *spi_imx) - { -+ u32 tx_wml = 0; -+ -+ if (spi_imx->devtype_data->tx_glitch_fixed) -+ tx_wml = spi_imx->wml; - /* - * Configure the DMA register: setup the watermark - * and enable DMA request. - */ - writel(MX51_ECSPI_DMA_RX_WML(spi_imx->wml - 1) | -- MX51_ECSPI_DMA_TX_WML(0) | -+ MX51_ECSPI_DMA_TX_WML(tx_wml) | - MX51_ECSPI_DMA_RXT_WML(spi_imx->wml) | - MX51_ECSPI_DMA_TEDEN | MX51_ECSPI_DMA_RXDEN | - MX51_ECSPI_DMA_RXTDEN, spi_imx->base + MX51_ECSPI_DMA); -@@ -1028,6 +1043,23 @@ static struct spi_imx_devtype_data imx53_ecspi_devtype_data = { - .devtype = IMX53_ECSPI, - }; - -+static struct spi_imx_devtype_data imx6ul_ecspi_devtype_data = { -+ .intctrl = mx51_ecspi_intctrl, -+ .prepare_message = mx51_ecspi_prepare_message, -+ .prepare_transfer = mx51_ecspi_prepare_transfer, -+ .trigger = mx51_ecspi_trigger, -+ .rx_available = mx51_ecspi_rx_available, -+ .reset = mx51_ecspi_reset, -+ .setup_wml = mx51_setup_wml, -+ .fifo_size = 64, -+ .has_dmamode = true, -+ .dynamic_burst = true, -+ .has_slavemode = true, -+ .tx_glitch_fixed = true, -+ .disable = mx51_ecspi_disable, -+ .devtype = IMX51_ECSPI, -+}; -+ - static const struct of_device_id spi_imx_dt_ids[] = { - { .compatible = "fsl,imx1-cspi", .data = &imx1_cspi_devtype_data, }, - { .compatible = "fsl,imx21-cspi", .data = &imx21_cspi_devtype_data, }, -@@ -1036,6 +1068,7 @@ static const struct of_device_id spi_imx_dt_ids[] = { - { .compatible = "fsl,imx35-cspi", .data = &imx35_cspi_devtype_data, }, - { .compatible = "fsl,imx51-ecspi", .data = &imx51_ecspi_devtype_data, }, - { .compatible = "fsl,imx53-ecspi", .data = &imx53_ecspi_devtype_data, }, -+ { .compatible = "fsl,imx6ul-ecspi", .data = &imx6ul_ecspi_devtype_data, }, - { /* sentinel */ } - }; - MODULE_DEVICE_TABLE(of, spi_imx_dt_ids); --- -2.30.2 -