aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek/patches-5.15/120-06-v5.18-spi-spi-mem-Kill-the-spi_mem_dtr_supports_op-helper.patch
diff options
context:
space:
mode:
authorChuanhong Guo <gch981213@gmail.com>2022-04-07 10:05:25 +0800
committerChuanhong Guo <gch981213@gmail.com>2022-04-28 18:06:00 +0800
commit861efe158ac56da2e00637aed704a77994bec54c (patch)
tree539836b2d4f7ec33792b2dda0b6ab7f45455c35f /target/linux/mediatek/patches-5.15/120-06-v5.18-spi-spi-mem-Kill-the-spi_mem_dtr_supports_op-helper.patch
parent3e5925225ec27519f1eccc1605fe9a76303d539b (diff)
downloadupstream-861efe158ac56da2e00637aed704a77994bec54c.tar.gz
upstream-861efe158ac56da2e00637aed704a77994bec54c.tar.bz2
upstream-861efe158ac56da2e00637aed704a77994bec54c.zip
mediatek: v5.15: backport spi-mem ecc support
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
Diffstat (limited to 'target/linux/mediatek/patches-5.15/120-06-v5.18-spi-spi-mem-Kill-the-spi_mem_dtr_supports_op-helper.patch')
-rw-r--r--target/linux/mediatek/patches-5.15/120-06-v5.18-spi-spi-mem-Kill-the-spi_mem_dtr_supports_op-helper.patch122
1 files changed, 122 insertions, 0 deletions
diff --git a/target/linux/mediatek/patches-5.15/120-06-v5.18-spi-spi-mem-Kill-the-spi_mem_dtr_supports_op-helper.patch b/target/linux/mediatek/patches-5.15/120-06-v5.18-spi-spi-mem-Kill-the-spi_mem_dtr_supports_op-helper.patch
new file mode 100644
index 0000000000..efc0ed526c
--- /dev/null
+++ b/target/linux/mediatek/patches-5.15/120-06-v5.18-spi-spi-mem-Kill-the-spi_mem_dtr_supports_op-helper.patch
@@ -0,0 +1,122 @@
+From 2e5fba82e4aeb72d71230eef2541881615aaf7cf Mon Sep 17 00:00:00 2001
+From: Miquel Raynal <miquel.raynal@bootlin.com>
+Date: Thu, 27 Jan 2022 10:18:00 +0100
+Subject: [PATCH 06/15] spi: spi-mem: Kill the spi_mem_dtr_supports_op() helper
+
+Now that spi_mem_default_supports_op() has access to the static
+controller capabilities (relating to memory operations), and now that
+these capabilities have been filled by the relevant controllers, there
+is no need for a specific helper checking only DTR operations, so let's
+just kill spi_mem_dtr_supports_op() and simply use
+spi_mem_default_supports_op() instead.
+
+Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
+Reviewed-by: Pratyush Yadav <p.yadav@ti.com>
+Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
+Reviewed-by: Tudor Ambarus <tudor.ambarus@microchip.com>
+Link: https://lore.kernel.org/linux-mtd/20220127091808.1043392-6-miquel.raynal@bootlin.com
+(cherry picked from commit 9a15efc5d5e6b5beaed0883e5bdcd0b1384c1b20)
+---
+ drivers/spi/spi-cadence-quadspi.c | 5 +----
+ drivers/spi/spi-mem.c | 10 ----------
+ drivers/spi/spi-mxic.c | 10 +---------
+ include/linux/spi/spi-mem.h | 11 -----------
+ 4 files changed, 2 insertions(+), 34 deletions(-)
+
+diff --git a/drivers/spi/spi-cadence-quadspi.c b/drivers/spi/spi-cadence-quadspi.c
+index 101cc71bffa7..2c98d6a9a2aa 100644
+--- a/drivers/spi/spi-cadence-quadspi.c
++++ b/drivers/spi/spi-cadence-quadspi.c
+@@ -1252,10 +1252,7 @@ static bool cqspi_supports_mem_op(struct spi_mem *mem,
+ if (!(all_true || all_false))
+ return false;
+
+- if (all_true)
+- return spi_mem_dtr_supports_op(mem, op);
+- else
+- return spi_mem_default_supports_op(mem, op);
++ return spi_mem_default_supports_op(mem, op);
+ }
+
+ static int cqspi_of_get_flash_pdata(struct platform_device *pdev,
+diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c
+index 86e6597bc3dc..ed966d8129eb 100644
+--- a/drivers/spi/spi-mem.c
++++ b/drivers/spi/spi-mem.c
+@@ -160,16 +160,6 @@ static bool spi_mem_check_buswidth(struct spi_mem *mem,
+ return true;
+ }
+
+-bool spi_mem_dtr_supports_op(struct spi_mem *mem,
+- const struct spi_mem_op *op)
+-{
+- if (op->cmd.nbytes != 2)
+- return false;
+-
+- return spi_mem_check_buswidth(mem, op);
+-}
+-EXPORT_SYMBOL_GPL(spi_mem_dtr_supports_op);
+-
+ bool spi_mem_default_supports_op(struct spi_mem *mem,
+ const struct spi_mem_op *op)
+ {
+diff --git a/drivers/spi/spi-mxic.c b/drivers/spi/spi-mxic.c
+index 45889947afed..e895df09896a 100644
+--- a/drivers/spi/spi-mxic.c
++++ b/drivers/spi/spi-mxic.c
+@@ -335,8 +335,6 @@ static int mxic_spi_data_xfer(struct mxic_spi *mxic, const void *txbuf,
+ static bool mxic_spi_mem_supports_op(struct spi_mem *mem,
+ const struct spi_mem_op *op)
+ {
+- bool all_false;
+-
+ if (op->data.buswidth > 8 || op->addr.buswidth > 8 ||
+ op->dummy.buswidth > 8 || op->cmd.buswidth > 8)
+ return false;
+@@ -348,13 +346,7 @@ static bool mxic_spi_mem_supports_op(struct spi_mem *mem,
+ if (op->addr.nbytes > 7)
+ return false;
+
+- all_false = !op->cmd.dtr && !op->addr.dtr && !op->dummy.dtr &&
+- !op->data.dtr;
+-
+- if (all_false)
+- return spi_mem_default_supports_op(mem, op);
+- else
+- return spi_mem_dtr_supports_op(mem, op);
++ return spi_mem_default_supports_op(mem, op);
+ }
+
+ static int mxic_spi_mem_exec_op(struct spi_mem *mem,
+diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h
+index 38e5d45c9842..4a1bfe689872 100644
+--- a/include/linux/spi/spi-mem.h
++++ b/include/linux/spi/spi-mem.h
+@@ -330,10 +330,6 @@ void spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr,
+
+ bool spi_mem_default_supports_op(struct spi_mem *mem,
+ const struct spi_mem_op *op);
+-
+-bool spi_mem_dtr_supports_op(struct spi_mem *mem,
+- const struct spi_mem_op *op);
+-
+ #else
+ static inline int
+ spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr,
+@@ -356,13 +352,6 @@ bool spi_mem_default_supports_op(struct spi_mem *mem,
+ {
+ return false;
+ }
+-
+-static inline
+-bool spi_mem_dtr_supports_op(struct spi_mem *mem,
+- const struct spi_mem_op *op)
+-{
+- return false;
+-}
+ #endif /* CONFIG_SPI_MEM */
+
+ int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op);
+--
+2.35.1
+