summaryrefslogtreecommitdiff
path: root/target/linux
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2015-10-01 15:35:44 +0000
committerJohn Crispin <john@openwrt.org>2015-10-01 15:35:44 +0000
commit9e1268b1684fb32f846123653a401fd3716fed1f (patch)
tree07320b02ceade8206a0816599f95d0af06fbc114 /target/linux
parentcb9723f09c798b287705bb3a77b0ac0f16a4462b (diff)
downloadmtk-20170518-9e1268b1684fb32f846123653a401fd3716fed1f.zip
mtk-20170518-9e1268b1684fb32f846123653a401fd3716fed1f.tar.gz
mtk-20170518-9e1268b1684fb32f846123653a401fd3716fed1f.tar.bz2
ralink: speed selection was broken in spi-mt7621
Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 47073
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/ramips/patches-3.18/0061-SPI-ralink-add-mt7621-SoC-spi-driver.patch9
1 files changed, 5 insertions, 4 deletions
diff --git a/target/linux/ramips/patches-3.18/0061-SPI-ralink-add-mt7621-SoC-spi-driver.patch b/target/linux/ramips/patches-3.18/0061-SPI-ralink-add-mt7621-SoC-spi-driver.patch
index 2ba1ee8..589c67e 100644
--- a/target/linux/ramips/patches-3.18/0061-SPI-ralink-add-mt7621-SoC-spi-driver.patch
+++ b/target/linux/ramips/patches-3.18/0061-SPI-ralink-add-mt7621-SoC-spi-driver.patch
@@ -25,7 +25,7 @@
obj-$(CONFIG_SPI_OC_TINY) += spi-oc-tiny.o
--- /dev/null
+++ b/drivers/spi/spi-mt7621.c
-@@ -0,0 +1,479 @@
+@@ -0,0 +1,480 @@
+/*
+ * spi-mt7621.c -- MediaTek MT7621 SPI controller driver
+ *
@@ -117,12 +117,12 @@
+{
+ u32 master = mt7621_spi_read(rs, MT7621_SPI_MASTER);
+
-+ master &= ~(0xfff << 16);
-+ master |= 1 << 16;
+ master |= 7 << 29;
+ master |= 1 << 2;
+ if (duplex)
+ master |= 1 << 10;
++ else
++ master &= ~(1 << 10);
+
+ mt7621_spi_write(rs, MT7621_SPI_MASTER, master);
+}
@@ -322,6 +322,8 @@
+
+ for (i = 0; i < t->len; i++, len++)
+ data[len / 4] |= buf[i] << (8 * (len & 3));
++ if (speed > t->speed_hz)
++ speed = t->speed_hz;
+ }
+
+ if (WARN_ON(rx_len > 16)) {
@@ -354,7 +356,6 @@
+ for (i = 0; i < rx_len; i += 4)
+ data[i / 4] = mt7621_spi_read(rs, MT7621_SPI_DATA4 + i);
+
-+ //m->actual_length = len + rx_len;
+ m->actual_length = rx_len;
+
+ len = 0;