]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
sf: Remove bank access unify logic code
authorJagannadha Sutradharudu Teki <jaganna@xilinx.com>
Tue, 28 May 2013 10:15:01 +0000 (15:45 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Tue, 28 May 2013 16:20:45 +0000 (18:20 +0200)
Removed spi_flash_bank() unify logic code, and place into
to a respective flash ops routines. So-that it makes some
more clearity on the code logic in early support.

Signed-off-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
drivers/mtd/spi/spi_flash.c

index 9b26a3e6ec68b4c8142b715cec1cb40ccfd1d266..af53467024649a2810aa0253e71fb0aec7ab0c02 100644 (file)
@@ -26,16 +26,6 @@ static void spi_flash_addr(u32 addr, u8 *cmd)
        cmd[3] = addr >> 0;
 }
 
-static int spi_flash_bank(struct spi_flash *flash, u32 addr, u8 *bank_sel)
-{
-       *bank_sel = addr / SPI_FLASH_16MB_BOUN;
-       if ((flash->spi->is_dual == MODE_DUAL_STACKED) &&
-                       (flash->spi->u_page == 1))
-               *bank_sel -= ((flash->size / 2) / SPI_FLASH_16MB_BOUN);
-
-       return spi_flash_cmd_bankaddr_write(flash, *bank_sel);
-}
-
 static int spi_flash_read_write(struct spi_slave *spi,
                                const u8 *cmd, size_t cmd_len,
                                const u8 *data_out, u8 *data_in,
@@ -114,7 +104,11 @@ int spi_flash_cmd_write_multi(struct spi_flash *flash, u32 offset,
                                flash->spi->u_page = 0;
                }
 
-               ret = spi_flash_bank(flash, write_addr, &bank_sel);
+               bank_sel = write_addr / SPI_FLASH_16MB_BOUN;
+               if ((is_dual == MODE_DUAL_STACKED) && (flash->spi->u_page == 1))
+                       bank_sel -= ((flash->size / 2) / SPI_FLASH_16MB_BOUN);
+
+               ret = spi_flash_cmd_bankaddr_write(flash, bank_sel);
                if (ret) {
                        debug("SF: fail to set bank%d\n", bank_sel);
                        return ret;
@@ -205,7 +199,11 @@ int spi_flash_cmd_read_fast(struct spi_flash *flash, u32 offset,
                                flash->spi->u_page = 0;
                }
 
-               ret = spi_flash_bank(flash, read_addr, &bank_sel);
+               bank_sel = read_addr / SPI_FLASH_16MB_BOUN;
+               if ((is_dual == MODE_DUAL_STACKED) && (flash->spi->u_page == 1))
+                       bank_sel -= ((flash->size / 2) / bank_boun);
+
+               ret = spi_flash_cmd_bankaddr_write(flash, bank_sel);
                if (ret) {
                        debug("SF: fail to set bank%d\n", bank_sel);
                        return ret;
@@ -313,7 +311,11 @@ int spi_flash_cmd_erase(struct spi_flash *flash, u32 offset, size_t len)
                                flash->spi->u_page = 0;
                }
 
-               ret = spi_flash_bank(flash, erase_addr, &bank_sel);
+               bank_sel = erase_addr / SPI_FLASH_16MB_BOUN;
+               if ((is_dual == MODE_DUAL_STACKED) && (flash->spi->u_page == 1))
+                       bank_sel -= ((flash->size / 2) / SPI_FLASH_16MB_BOUN);
+
+               ret = spi_flash_cmd_bankaddr_write(flash, bank_sel);
                if (ret) {
                        debug("SF: fail to set bank%d\n", bank_sel);
                        return ret;