diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2014-12-01 03:42:16 -0500 |
---|---|---|
committer | Brian Norris <computersforpeace@gmail.com> | 2014-12-01 13:21:42 -0500 |
commit | 58c81957b7d284c57a9fc1b815c77155ef744ea5 (patch) | |
tree | b33c19eab6c57813ebc6df7ab22255ceb235b818 /drivers/mtd/spi-nor | |
parent | 7ca94e07fe8ccbaca9ecb59f388ab8dd93c73e88 (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.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) | |||
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); |