浏览代码

mtd: spi-nor: fix the wrong dummy value

For the DDR Quad read, the dummy cycles maybe 3 or 6 which is less then 8.
The dummy cycles is actually 8 for SPI fast/dual/quad read.

This patch makes preparations for the DDR quad read, it fixes the wrong dummy
value for both the spi-nor.c and m25p80.c.

Signed-off-by: Huang Shijie <b32955@freescale.com>
Acked-by: Marek Vasut <marex@denx.de>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Huang Shijie 11 年之前
父节点
当前提交
0b78a2cf2a
共有 2 个文件被更改,包括 5 次插入2 次删除
  1. 4 1
      drivers/mtd/devices/m25p80.c
  2. 1 1
      drivers/mtd/spi-nor/spi-nor.c

+ 4 - 1
drivers/mtd/devices/m25p80.c

@@ -128,9 +128,12 @@ static int m25p80_read(struct spi_nor *nor, loff_t from, size_t len,
 	struct spi_device *spi = flash->spi;
 	struct spi_device *spi = flash->spi;
 	struct spi_transfer t[2];
 	struct spi_transfer t[2];
 	struct spi_message m;
 	struct spi_message m;
-	int dummy = nor->read_dummy;
+	unsigned int dummy = nor->read_dummy;
 	int ret;
 	int ret;
 
 
+	/* convert the dummy cycles to the number of bytes */
+	dummy /= 8;
+
 	/* Wait till previous write/erase is done. */
 	/* Wait till previous write/erase is done. */
 	ret = nor->wait_till_ready(nor);
 	ret = nor->wait_till_ready(nor);
 	if (ret)
 	if (ret)

+ 1 - 1
drivers/mtd/spi-nor/spi-nor.c

@@ -98,7 +98,7 @@ static inline int spi_nor_read_dummy_cycles(struct spi_nor *nor)
 	case SPI_NOR_FAST:
 	case SPI_NOR_FAST:
 	case SPI_NOR_DUAL:
 	case SPI_NOR_DUAL:
 	case SPI_NOR_QUAD:
 	case SPI_NOR_QUAD:
-		return 1;
+		return 8;
 	case SPI_NOR_NORMAL:
 	case SPI_NOR_NORMAL:
 		return 0;
 		return 0;
 	}
 	}