[OpenWrt-Devel] [PATCH 23/23] ar71xx: fix spi ath79 fast read

Zhao, Gang gang.zhao.42 at gmail.com
Fri Jul 25 22:48:58 EDT 2014


Fast read adds a dummy byte in tx buffer if the transfer type is
SPI_TRANSFER_FLASH_READ_CMD. The dummy byte should be ignored when
calculating read address. This is done by adding a bool variable dummy
in struct spi_transfer to indicate whether this transfer includes the
dummy byte.

Signed-off-by: Zhao, Gang <gang.zhao.42 at gmail.com>
---
 .../464-spi-ath79-fix-fast-flash-read.patch        | 34 ++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 target/linux/ar71xx/patches-3.14/464-spi-ath79-fix-fast-flash-read.patch

diff --git a/target/linux/ar71xx/patches-3.14/464-spi-ath79-fix-fast-flash-read.patch b/target/linux/ar71xx/patches-3.14/464-spi-ath79-fix-fast-flash-read.patch
new file mode 100644
index 0000000..9c7b93e
--- /dev/null
+++ b/target/linux/ar71xx/patches-3.14/464-spi-ath79-fix-fast-flash-read.patch
@@ -0,0 +1,34 @@
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -530,6 +530,8 @@ static int m25p80_read(struct mtd_info *
+ 	if (dummy < 0) {
+ 		dev_err(&flash->spi->dev, "No valid read command supported\n");
+ 		return -EINVAL;
++	} else if (dummy == 1) {
++		t[0].dummy = true;
+ 	}
+ 
+ 	t[0].type = SPI_TRANSFER_FLASH_READ_CMD;
+--- a/drivers/spi/spi-ath79.c
++++ b/drivers/spi/spi-ath79.c
+@@ -262,6 +262,10 @@ static int ath79_spi_do_read_flash_cmd(s
+ 	sp->read_addr = 0;
+ 
+ 	len = t->len - 1;
++
++	if (t->dummy)
++		len -= 1;
++
+ 	p = t->tx_buf;
+ 
+ 	while (len--) {
+--- a/include/linux/spi/spi.h
++++ b/include/linux/spi/spi.h
+@@ -598,6 +598,7 @@ struct spi_transfer {
+ 	u16		delay_usecs;
+ 	u32		speed_hz;
+ 	enum spi_transfer_type type;
++	bool dummy;
+ 
+ 	struct list_head transfer_list;
+ };
-- 
1.9.3
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list