From a7b1d249c5b68bb380a0d1fd9e7f5c61fc029bb4 Mon Sep 17 00:00:00 2001 From: Jagannadha Sutradharudu Teki Date: Tue, 1 Oct 2013 01:46:47 +0530 Subject: [PATCH] sf: Fix remain_len calculation in read ops remain_len must be subtracted with offset instead of read_addr, by subtracting read_addr in remain_len may leads incorrect behavior for dual parallel qspi's. Signed-off-by: Jagannadha Sutradharudu Teki Acked-by: Punnaiah Choudary Kalluri Signed-off-by: Michal Simek --- drivers/mtd/spi/spi_flash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c index 314391ba946..03f3cdb88a1 100644 --- a/drivers/mtd/spi/spi_flash.c +++ b/drivers/mtd/spi/spi_flash.c @@ -357,7 +357,7 @@ int spi_flash_cmd_read_fast(struct spi_flash *flash, u32 offset, if ((is_dual == MODE_DUAL_STACKED) && (flash->spi->u_page == 1)) bank_sel += ((flash->size / 2) / bank_boun); #endif - remain_len = (bank_boun * (bank_sel + 1) - read_addr); + remain_len = (bank_boun * (bank_sel + 1)) - offset; if (len < remain_len) read_len = len; else -- 2.47.3