From a4d3816181c0848e79a84fcb32392125c7c2c2d8 Mon Sep 17 00:00:00 2001 From: Jagannadha Sutradharudu Teki Date: Sat, 25 Aug 2012 21:20:30 +0530 Subject: [PATCH] Xilinx: ARM: sf: winbond: Update the flash memory size at runtime This patch adds support to update the flash memory size based on the runtime detection of dual qspi flash. So removed the conditional compilation for dual qspi flash. Signed-off-by: Jagannadha Sutradharudu Teki --- drivers/mtd/spi/winbond.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) mode change 100755 => 100644 drivers/mtd/spi/winbond.c diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c old mode 100755 new mode 100644 index ffa2142c221..add792a76be --- a/drivers/mtd/spi/winbond.c +++ b/drivers/mtd/spi/winbond.c @@ -139,13 +139,6 @@ struct spi_flash *spi_flash_probe_winbond(struct spi_slave *spi, u8 *idcode) return NULL; } - /* address width is 4 for dual and 3 for single qspi */ -#ifdef CONFIG_XILINX_PSS_QSPI_USE_DUAL_FLASH - flash->addr_width = 4; -#else - flash->addr_width = 3; -#endif - flash->spi = spi; flash->name = params->name; @@ -157,15 +150,18 @@ struct spi_flash *spi_flash_probe_winbond(struct spi_slave *spi, u8 *idcode) flash->read = spi_flash_cmd_read_fast; flash->page_size = page_size; flash->sector_size = page_size * params->pages_per_sector; - if (flash->addr_width == 3) + + /* address width is 4 for dual and 3 for single qspi */ + if (flash->spi->is_dual == 1) { + flash->addr_width = 4; flash->size = page_size * params->pages_per_sector * params->sectors_per_block - * params->nr_blocks; - else if (flash->addr_width == 4) { - printf("Dual Flash\n"); + * (2 * params->nr_blocks); + } else if (flash->spi->is_dual == 0) { + flash->addr_width = 3; flash->size = page_size * params->pages_per_sector * params->sectors_per_block - * (2 * params->nr_blocks); + * params->nr_blocks; } return flash; -- 2.47.3