The bank_sel should be increased by total banks in first
chip, if accessing the second chip in Dual stacked mode.
This fixes the wrong remain_len calculation if two 16MB
chips connected in Dual stacked and accessing the second
chip.
Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
bank_sel = spi_flash_bank(flash, bank_addr);
if (bank_sel < 0)
return ret;
+ if ((flash->dual_flash == SF_DUAL_STACKED_FLASH) &&
+ (flash->spi->flags & SPI_XFER_U_PAGE))
+ bank_sel += (flash->size >> 1)/SPI_FLASH_16MB_BOUN;
#endif
remain_len = ((SPI_FLASH_16MB_BOUN << flash->shift) *
(bank_sel + 1)) - offset;