diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2014-12-01 11:42:16 +0300 |
---|---|---|
committer | Brian Norris <computersforpeace@gmail.com> | 2014-12-01 21:21:42 +0300 |
commit | 58c81957b7d284c57a9fc1b815c77155ef744ea5 (patch) | |
tree | b33c19eab6c57813ebc6df7ab22255ceb235b818 /drivers/mtd/spi-nor | |
parent | 7ca94e07fe8ccbaca9ecb59f388ab8dd93c73e88 (diff) | |
download | linux-58c81957b7d284c57a9fc1b815c77155ef744ea5.tar.xz |
mtd: spi-nor: allow NULL as chip name and try to auto detect it
This will allow spi-nor users to plainly use JEDEC to detect flash chip.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Diffstat (limited to 'drivers/mtd/spi-nor')
-rw-r--r-- | drivers/mtd/spi-nor/spi-nor.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index 0f4f2ba16e3e..0f8ec3c2d015 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -938,13 +938,21 @@ int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode) if (ret) return ret; - id = spi_nor_match_id(name); - if (!id) + /* Try to auto-detect if chip name wasn't specified */ + if (!name) + id = spi_nor_read_id(nor); + else + id = spi_nor_match_id(name); + if (IS_ERR_OR_NULL(id)) return -ENOENT; info = (void *)id->driver_data; - if (info->id_len) { + /* + * If caller has specified name of flash model that can normally be + * detected using JEDEC, let's verify it. + */ + if (name && info->id_len) { const struct spi_device_id *jid; jid = spi_nor_read_id(nor); |