ralink: fix chuncked-io module
authorJohn Crispin <john@openwrt.org>
Sun, 30 Mar 2014 19:03:55 +0000 (19:03 +0000)
committerJohn Crispin <john@openwrt.org>
Sun, 30 Mar 2014 19:03:55 +0000 (19:03 +0000)
Signed-off-by: John Crispin <blogic@openwrt.org>
SVN-Revision: 40342

target/linux/ramips/patches-3.10/0131-mtd-add-chunked-read-io-to-m25p80.patch

index 6a4f8abf359a3662f563af68da9572a4f76ab08d..6123ec110591a5aad3b0bf8a1520be212256a5c5 100644 (file)
@@ -8,9 +8,11 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  drivers/mtd/devices/m25p80.c |  127 ++++++++++++++++++++++++++++++++++++++++++
  1 file changed, 127 insertions(+)
 
---- a/drivers/mtd/devices/m25p80.c
-+++ b/drivers/mtd/devices/m25p80.c
-@@ -392,6 +392,57 @@ static int m25p80_read(struct mtd_info *
+Index: linux-3.10.34/drivers/mtd/devices/m25p80.c
+===================================================================
+--- linux-3.10.34.orig/drivers/mtd/devices/m25p80.c    2014-03-30 19:40:10.135292951 +0100
++++ linux-3.10.34/drivers/mtd/devices/m25p80.c 2014-03-30 19:44:40.151295482 +0100
+@@ -392,6 +392,58 @@
        return 0;
  }
  
@@ -34,6 +36,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 +      spi_message_add_tail(&t[0], &m);
 +      spi_message_add_tail(&t[1], &m);
 +
++      *retlen = 0;
++
 +      while (idx < len) {
 +              int rlen = (len - idx > 4) ? (4) : (len - idx);
 +
@@ -56,8 +60,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 +
 +              spi_sync(flash->spi, &m);
 +
-+              *retlen = m.actual_length - m25p_cmdsz(flash) -
-+                      (flash->fast_read ? 1 : 0);
++              *retlen += m.actual_length - m25p_cmdsz(flash);
 +
 +              mutex_unlock(&flash->lock);
 +              idx += rlen;
@@ -68,7 +71,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  /*
   * Write an address range to the flash chip.  Data must be written in
   * FLASH_PAGESIZE chunks.  The address range may be any size provided
-@@ -479,6 +530,76 @@ static int m25p80_write(struct mtd_info
+@@ -479,6 +531,76 @@
        return 0;
  }
  
@@ -145,7 +148,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  static int sst_write(struct mtd_info *mtd, loff_t to, size_t len,
                size_t *retlen, const u_char *buf)
  {
-@@ -1058,6 +1179,12 @@ static int m25p_probe(struct spi_device
+@@ -1058,6 +1180,12 @@
                flash->fast_read = true;
  #endif