From: Jagannadha Sutradharudu Teki Date: Mon, 30 Sep 2013 20:16:47 +0000 (+0530) Subject: sf: Fix remain_len calculation in read ops X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a7b1d249c5b68bb380a0d1fd9e7f5c61fc029bb4;p=thirdparty%2Fu-boot.git 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 --- 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