From e4d9553d2281e8f37db7edc74b5ef19890001fa3 Mon Sep 17 00:00:00 2001 From: Jagannadha Sutradharudu Teki Date: Thu, 16 May 2013 00:44:34 +0530 Subject: [PATCH] sf: Fix the read bank boundary for dual parallel In dual parallel case the read boundary should be twise the boundary that shoud use on the single/dual stacked case. Signed-off-by: Jagannadha Sutradharudu Teki --- drivers/mtd/spi/spi_flash.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c index 99315530ec9..d6f2e9a21fa 100644 --- a/drivers/mtd/spi/spi_flash.c +++ b/drivers/mtd/spi/spi_flash.c @@ -176,12 +176,17 @@ int spi_flash_cmd_read_fast(struct spi_flash *flash, u32 offset, u8 cmd[5]; u8 bank_sel; u32 remain_len, read_len, read_addr; + u32 bank_boun; int ret = -1; /* Handle memory-mapped SPI */ if (flash->memory_map) memcpy(data, flash->memory_map + offset, len); + bank_boun = SPI_FLASH_16MB_BOUN; + if (flash->spi->is_dual == 2) + bank_boun = SPI_FLASH_16MB_BOUN >> 1; + cmd[0] = CMD_READ_ARRAY_FAST; cmd[sizeof(cmd)-1] = 0x00; @@ -203,7 +208,7 @@ int spi_flash_cmd_read_fast(struct spi_flash *flash, u32 offset, return ret; } - remain_len = (SPI_FLASH_16MB_BOUN * (bank_sel + 1) - offset); + remain_len = (bank_boun * (bank_sel + 1) - offset); if (len < remain_len) read_len = len; else -- 2.47.3