From: Jagannadha Sutradharudu Teki Date: Tue, 21 May 2013 16:56:04 +0000 (+0530) Subject: sf: spansion|stmicro|winbond: Update the dual qspi size logic X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f7b313efcfdb578b234e6f674b4491ed189c4a98;p=thirdparty%2Fu-boot.git sf: spansion|stmicro|winbond: Update the dual qspi size logic dual parallel: double the page_size and sector_size dual_stacked: double the flash_size Signed-off-by: Jagannadha Sutradharudu Teki --- diff --git a/drivers/mtd/spi/spansion.c b/drivers/mtd/spi/spansion.c index 55e07929335..4281896a7f1 100644 --- a/drivers/mtd/spi/spansion.c +++ b/drivers/mtd/spi/spansion.c @@ -144,17 +144,15 @@ struct spi_flash *spi_flash_probe_spansion(struct spi_slave *spi, u8 *idcode) flash->page_size = 256; flash->sector_size = 256 * params->pages_per_sector; - /* - * page_size and nr_sectors are double for dual parallel qspi - * and double the nr_sectors for dual stacked qspi - */ if (flash->spi->is_dual == 2) { flash->page_size *= 2; - flash->size = flash->sector_size * (2 * params->nr_sectors); - } else if (flash->spi->is_dual == 1) - flash->size = flash->sector_size * (2 * params->nr_sectors); - else - flash->size = flash->sector_size * params->nr_sectors; + flash->sector_size *= 2; + } + + flash->size = flash->sector_size * params->nr_sectors; + + if (flash->spi->is_dual == 1) + flash->size *= 2; return flash; } diff --git a/drivers/mtd/spi/stmicro.c b/drivers/mtd/spi/stmicro.c index f423f954fb7..3f25090b9b7 100644 --- a/drivers/mtd/spi/stmicro.c +++ b/drivers/mtd/spi/stmicro.c @@ -209,17 +209,15 @@ struct spi_flash *spi_flash_probe_stmicro(struct spi_slave *spi, u8 * idcode) flash->page_size = 256; flash->sector_size = 256 * params->pages_per_sector; - /* - * page_size and nr_sectors are double for dual parallel qspi - * and double the nr_sectors for dual stacked qspi - */ if (flash->spi->is_dual == 2) { flash->page_size *= 2; - flash->size = flash->sector_size * (2 * params->nr_sectors); - } else if (flash->spi->is_dual == 1) - flash->size = flash->sector_size * (2 * params->nr_sectors); - else - flash->size = flash->sector_size * params->nr_sectors; + flash->sector_size *= 2; + } + + flash->size = flash->sector_size * params->nr_sectors; + + if (flash->spi->is_dual == 1) + flash->size *= 2; return flash; } diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c index 91277e3a95b..efaabd8c8d5 100644 --- a/drivers/mtd/spi/winbond.c +++ b/drivers/mtd/spi/winbond.c @@ -111,17 +111,15 @@ struct spi_flash *spi_flash_probe_winbond(struct spi_slave *spi, u8 *idcode) flash->page_size = 256; flash->sector_size = 4096; - /* - * page_size and nr_blocks are double for dual parallel qspi - * and double the nr_blocks for dual stacked qspi - */ if (flash->spi->is_dual == 2) { flash->page_size *= 2; - flash->size = 4096 * 16 * (2 * params->nr_blocks); - } else if (flash->spi->is_dual == 1) - flash->size = 4096 * 16 * (2 * params->nr_blocks); - else - flash->size = 4096 * 16 * params->nr_blocks; + flash->sector_size *= 2; + } + + flash->size = 4096 * 16 * params->nr_blocks; + + if (flash->spi->is_dual) + flash->size *= 2; return flash; }