]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
sf: Fix the read bank boundary for dual parallel
authorJagannadha Sutradharudu Teki <jaganna@xilinx.com>
Wed, 15 May 2013 19:14:34 +0000 (00:44 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Mon, 27 May 2013 11:21:20 +0000 (13:21 +0200)
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 <jaganna@xilinx.com>
drivers/mtd/spi/spi_flash.c

index 99315530ec9512b382e3b353e171f047f31ba9b6..d6f2e9a21faf6330d727bf7194ac5a5703b2a154 100644 (file)
@@ -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