mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-05 04:36:13 +02:00
mtd: spi-nor: Call spi_nor_post_sfdp_fixups() only after spi_nor_parse_sfdp()
This patch follows the upstream linux commit:
5273cc6df984("mtd: spi-nor: core: Call spi_nor_post_sfdp_fixups() only
when SFDP is defined")
spi_nor_post_sfdp_fixups() was called regardless of if
spi_nor_parse_sfdp() had been called or not. late_init() should be
instead used to initialize the parameters that are not defined in SFDP.
Ideally spi_nor_post_sfdp_fixups() is called only after successful parse
of SFDP. However, in case SFDP support is disabled by .config, that can
break current functionality. Therefore, we would call it after
spi_nor_parse_sfdp() regardless of its return value.
Acked-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
This commit is contained in:
parent
0267cfa857
commit
20f1383bad
@ -195,11 +195,10 @@ struct sfdp_bfpt {
|
||||
/**
|
||||
* struct spi_nor_fixups - SPI NOR fixup hooks
|
||||
* @post_bfpt: called after the BFPT table has been parsed
|
||||
* @post_sfdp: called after SFDP has been parsed (is also called for SPI NORs
|
||||
* that do not support RDSFDP). Typically used to tweak various
|
||||
* parameters that could not be extracted by other means (i.e.
|
||||
* when information provided by the SFDP/flash_info tables are
|
||||
* incomplete or wrong).
|
||||
* @post_sfdp: called after SFDP has been parsed. Typically used to tweak
|
||||
* various parameters that could not be extracted by other means
|
||||
* (i.e. when information provided by the SFDP tables are incomplete
|
||||
* or wrong).
|
||||
* @late_init: used to initialize flash parameters that are not declared in the
|
||||
* JESD216 SFDP standard, or where SFDP tables not defined at all.
|
||||
*
|
||||
@ -3045,13 +3044,12 @@ static int spi_nor_parse_sfdp(struct spi_nor *nor,
|
||||
|
||||
/**
|
||||
* spi_nor_post_sfdp_fixups() - Updates the flash's parameters and settings
|
||||
* after SFDP has been parsed (is also called for SPI NORs that do not
|
||||
* support RDSFDP).
|
||||
* after SFDP has been parsed.
|
||||
* @nor: pointer to a 'struct spi_nor'
|
||||
*
|
||||
* Typically used to tweak various parameters that could not be extracted by
|
||||
* other means (i.e. when information provided by the SFDP/flash_info tables
|
||||
* are incomplete or wrong).
|
||||
* other means (i.e. when information provided by the SFDP tables are incomplete
|
||||
* or wrong).
|
||||
*/
|
||||
static void spi_nor_post_sfdp_fixups(struct spi_nor *nor,
|
||||
struct spi_nor_flash_parameter *params)
|
||||
@ -3193,6 +3191,8 @@ static int spi_nor_init_params(struct spi_nor *nor,
|
||||
} else {
|
||||
memcpy(params, &sfdp_params, sizeof(*params));
|
||||
}
|
||||
|
||||
spi_nor_post_sfdp_fixups(nor, params);
|
||||
}
|
||||
#if CONFIG_IS_ENABLED(DM_SPI) && CONFIG_IS_ENABLED(SPI_ADVANCE)
|
||||
/*
|
||||
@ -3250,7 +3250,6 @@ static int spi_nor_init_params(struct spi_nor *nor,
|
||||
params->page_size <<= 1;
|
||||
}
|
||||
#endif
|
||||
spi_nor_post_sfdp_fixups(nor, params);
|
||||
spi_nor_late_init_fixups(nor, params);
|
||||
|
||||
return 0;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user