aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/spi-nor
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2014-12-01 03:42:16 -0500
committerBrian Norris <computersforpeace@gmail.com>2014-12-01 13:21:42 -0500
commit58c81957b7d284c57a9fc1b815c77155ef744ea5 (patch)
treeb33c19eab6c57813ebc6df7ab22255ceb235b818 /drivers/mtd/spi-nor
parent7ca94e07fe8ccbaca9ecb59f388ab8dd93c73e88 (diff)
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.c14
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)
938 if (ret) 938 if (ret)
939 return ret; 939 return ret;
940 940
941 id = spi_nor_match_id(name); 941 /* Try to auto-detect if chip name wasn't specified */
942 if (!id) 942 if (!name)
943 id = spi_nor_read_id(nor);
944 else
945 id = spi_nor_match_id(name);
946 if (IS_ERR_OR_NULL(id))
943 return -ENOENT; 947 return -ENOENT;
944 948
945 info = (void *)id->driver_data; 949 info = (void *)id->driver_data;
946 950
947 if (info->id_len) { 951 /*
952 * If caller has specified name of flash model that can normally be
953 * detected using JEDEC, let's verify it.
954 */
955 if (name && info->id_len) {
948 const struct spi_device_id *jid; 956 const struct spi_device_id *jid;
949 957
950 jid = spi_nor_read_id(nor); 958 jid = spi_nor_read_id(nor);