[PATCH] mtd: spi-nor: allow NULL as chip name and try to auto detect it
Brian Norris
computersforpeace at gmail.com
Mon Dec 1 00:40:23 PST 2014
On Wed, Oct 22, 2014 at 06:05:00PM +0200, Rafał Miłecki wrote:
> This will allow spi-nor users to plainly use JEDEC to detect flash chip.
>
> Signed-off-by: Rafał Miłecki <zajec5 at gmail.com>
> ---
> drivers/mtd/spi-nor/spi-nor.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> index ee777a4..1facaac 100644
> --- a/drivers/mtd/spi-nor/spi-nor.c
> +++ b/drivers/mtd/spi-nor/spi-nor.c
> @@ -937,13 +937,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);
> + /* 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 (!id)
> return -ENOENT;
>
> info = (void *)id->driver_data;
>
> - if (info->jedec_id) {
> + /*
> + * If caller has specified name of flash model that can normally be
> + * detected using JEDEC, let's verify it.
> + */
> + if (name && info->jedec_id) {
This part doesn't apply cleanly any more.
> const struct spi_device_id *jid;
>
> jid = spi_nor_read_id(nor);
I think this is a good time to consider this question: how do we
*really* want a SPI NOR driver to interact with spi-nor.c, regarding
device detection? I like how this patch removes the string-matching
requirement, so we can just auto-detect by JEDEC RDID alone. But I don't
like how it leaves around the function parameter 'name', which really
we should really be moving to deprecate if possible.
Anyway, I can take a rebased version of this patch. But I'd like to
encourage more thought here for the future. I don't yet have a specific
proposal, so any thoughts are welcome.
Brian
More information about the linux-mtd
mailing list