mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-06 13:16:22 +00:00
mtd: spi-nor: simplify spi_nor_get_flash_info()
Rework spi_nor_get_flash_info() to make it look more straight forward and esp. don't return early. The latter is a preparation to check for deprecated flashes. Signed-off-by: Michael Walle <mwalle@kernel.org> Reviewed-by: Pratyush Yadav <pratyush@kernel.org> Signed-off-by: Pratyush Yadav <pratyush@kernel.org> Link: https://lore.kernel.org/r/20240603134055.1859863-1-mwalle@kernel.org
This commit is contained in:
parent
2d95d13248
commit
e159079a8b
@ -3298,32 +3298,28 @@ static const struct flash_info *spi_nor_get_flash_info(struct spi_nor *nor,
|
||||
|
||||
if (name)
|
||||
info = spi_nor_match_name(nor, name);
|
||||
/* Try to auto-detect if chip name wasn't specified or not found */
|
||||
if (!info)
|
||||
return spi_nor_detect(nor);
|
||||
|
||||
/*
|
||||
* If caller has specified name of flash model that can normally be
|
||||
* detected using JEDEC, let's verify it.
|
||||
* Auto-detect if chip name wasn't specified or not found, or the chip
|
||||
* has an ID. If the chip supposedly has an ID, we also do an
|
||||
* auto-detection to compare it later.
|
||||
*/
|
||||
if (name && info->id) {
|
||||
if (!info || info->id) {
|
||||
const struct flash_info *jinfo;
|
||||
|
||||
jinfo = spi_nor_detect(nor);
|
||||
if (IS_ERR(jinfo)) {
|
||||
if (IS_ERR(jinfo))
|
||||
return jinfo;
|
||||
} else if (jinfo != info) {
|
||||
/*
|
||||
* JEDEC knows better, so overwrite platform ID. We
|
||||
* can't trust partitions any longer, but we'll let
|
||||
* mtd apply them anyway, since some partitions may be
|
||||
* marked read-only, and we don't want to loose that
|
||||
* information, even if it's not 100% accurate.
|
||||
*/
|
||||
|
||||
/*
|
||||
* If caller has specified name of flash model that can normally
|
||||
* be detected using JEDEC, let's verify it.
|
||||
*/
|
||||
if (info && jinfo != info)
|
||||
dev_warn(nor->dev, "found %s, expected %s\n",
|
||||
jinfo->name, info->name);
|
||||
info = jinfo;
|
||||
}
|
||||
|
||||
/* If info was set before, JEDEC knows better. */
|
||||
info = jinfo;
|
||||
}
|
||||
|
||||
return info;
|
||||
|
Loading…
Reference in New Issue
Block a user