From 6e0ae87a987dd61dcfce42dd06b5df845d293307 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sat, 5 May 2018 08:25:18 +0200 Subject: [PATCH] ramips: disable spi full duplex on mt7621 Signed-off-by: John Crispin --- .../0043-spi-add-mt7621-support.patch | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/target/linux/ramips/patches-4.14/0043-spi-add-mt7621-support.patch b/target/linux/ramips/patches-4.14/0043-spi-add-mt7621-support.patch index c615601e55..f59e52a5b9 100644 --- a/target/linux/ramips/patches-4.14/0043-spi-add-mt7621-support.patch +++ b/target/linux/ramips/patches-4.14/0043-spi-add-mt7621-support.patch @@ -11,8 +11,10 @@ Signed-off-by: John Crispin 3 files changed, 487 insertions(+) create mode 100644 drivers/spi/spi-mt7621.c ---- a/drivers/spi/Kconfig -+++ b/drivers/spi/Kconfig +Index: linux-4.14.37/drivers/spi/Kconfig +=================================================================== +--- linux-4.14.37.orig/drivers/spi/Kconfig ++++ linux-4.14.37/drivers/spi/Kconfig @@ -569,6 +569,12 @@ config SPI_RT2880 help This selects a driver for the Ralink RT288x/RT305x SPI Controller. @@ -26,8 +28,10 @@ Signed-off-by: John Crispin config SPI_S3C24XX tristate "Samsung S3C24XX series SPI" depends on ARCH_S3C24XX ---- a/drivers/spi/Makefile -+++ b/drivers/spi/Makefile +Index: linux-4.14.37/drivers/spi/Makefile +=================================================================== +--- linux-4.14.37.orig/drivers/spi/Makefile ++++ linux-4.14.37/drivers/spi/Makefile @@ -60,6 +60,7 @@ obj-$(CONFIG_SPI_MPC512x_PSC) += spi-mp obj-$(CONFIG_SPI_MPC52xx_PSC) += spi-mpc52xx-psc.o obj-$(CONFIG_SPI_MPC52xx) += spi-mpc52xx.o @@ -36,9 +40,11 @@ Signed-off-by: John Crispin obj-$(CONFIG_SPI_MXS) += spi-mxs.o obj-$(CONFIG_SPI_NUC900) += spi-nuc900.o obj-$(CONFIG_SPI_OC_TINY) += spi-oc-tiny.o +Index: linux-4.14.37/drivers/spi/spi-mt7621.c +=================================================================== --- /dev/null -+++ b/drivers/spi/spi-mt7621.c -@@ -0,0 +1,488 @@ ++++ linux-4.14.37/drivers/spi/spi-mt7621.c +@@ -0,0 +1,494 @@ +/* + * spi-mt7621.c -- MediaTek MT7621 SPI controller driver + * @@ -131,9 +137,11 @@ Signed-off-by: John Crispin + + master |= 7 << 29; + master |= 1 << 2; ++#ifdef CONFIG_SOC_MT7620 + if (duplex) + master |= 1 << 10; + else ++#endif + master &= ~(1 << 10); + + mt7621_spi_write(rs, MT7621_SPI_MASTER, master); @@ -308,6 +316,7 @@ Signed-off-by: John Crispin + return 0; +} + ++#ifdef CONFIG_SOC_MT7620 +static int mt7621_spi_transfer_full_duplex(struct spi_master *master, + struct spi_message *m) +{ @@ -392,15 +401,18 @@ Signed-off-by: John Crispin + + return 0; +} ++#endif + +static int mt7621_spi_transfer_one_message(struct spi_master *master, + struct spi_message *m) +{ + struct spi_device *spi = m->spi; ++#ifdef CONFIG_SOC_MT7620 + int cs = spi->chip_select; + + if (cs) + return mt7621_spi_transfer_full_duplex(master, m); ++#endif + return mt7621_spi_transfer_half_duplex(master, m); +} +