OSDN Git Service

mtd: spi-nor: allow NULL as chip name and try to auto detect it
authorRafał Miłecki <zajec5@gmail.com>
Mon, 1 Dec 2014 08:42:16 +0000 (09:42 +0100)
committerBrian Norris <computersforpeace@gmail.com>
Mon, 1 Dec 2014 18:21:42 +0000 (10:21 -0800)
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>
drivers/mtd/spi-nor/spi-nor.c

index 0f4f2ba..0f8ec3c 100644 (file)
@@ -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);