mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 20:48:49 +08:00
mtd: spi-nor: Delay the initialization of bank_size
Bank size is derived from the chip's size, which in
spi_nor_init_default_params() can still be zero if the flash size is
not specified at flash declaration. Let the flash size be updated
by parsing SFDP and do the initialization of the bank size in
spi_nor_late_init_params(). Flashes that don't define the SFDP tables
must specify the flash size at declaration.
Fixes: 9d6c5d64f0
("mtd: spi-nor: Introduce the concept of bank")
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/r/20230331194620.839899-1-miquel.raynal@bootlin.com
[ta: drop superfluous initialization in spi_nor_init_default_params(),
reword commit message, add Fixes tag.]
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
This commit is contained in:
parent
705c9ef831
commit
79a4db5019
@ -2882,6 +2882,8 @@ static void spi_nor_late_init_params(struct spi_nor *nor)
|
||||
*/
|
||||
if (nor->flags & SNOR_F_HAS_LOCK && !nor->params->locking_ops)
|
||||
spi_nor_init_default_locking_ops(nor);
|
||||
|
||||
nor->params->bank_size = div64_u64(nor->params->size, nor->info->n_banks);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2948,7 +2950,6 @@ static void spi_nor_init_default_params(struct spi_nor *nor)
|
||||
/* Set SPI NOR sizes. */
|
||||
params->writesize = 1;
|
||||
params->size = (u64)info->sector_size * info->n_sectors;
|
||||
params->bank_size = div64_u64(params->size, info->n_banks);
|
||||
params->page_size = info->page_size;
|
||||
|
||||
if (!(info->flags & SPI_NOR_NO_FR)) {
|
||||
|
Loading…
Reference in New Issue
Block a user