All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cyrille Pitchen <cyrille.pitchen@atmel.com>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Masahiko Iwamoto" <iwamoto@allied-telesis.co.jp>,
	"Jagan Teki" <jagan@openedev.com>, "Marek Vasut" <marex@denx.de>
Cc: <linux-mtd@lists.infradead.org>, <kernel@pengutronix.de>
Subject: Re: [PATCH] mtd: spi-nor: don't claim mr25h40 to be JEDEC compatible
Date: Fri, 13 Jan 2017 15:30:30 +0100	[thread overview]
Message-ID: <2b0640c0-09ce-22d4-bd02-729fbed8c608@atmel.com> (raw)
In-Reply-To: <20170113093509.25737-1-u.kleine-koenig@pengutronix.de>

Hi all,

Le 13/01/2017 à 10:35, Uwe Kleine-König a écrit :
> Commit edd0c8f4932d ("mtd: spi-nor: Add support for mr25h40") made it
> possible to use a mr25h40 by writing
> 
> 	compatible = "mr25h40", "jedec,spi-nor";
> 
> in a device tree. This chip however isn't JEDEC compatible however, so

That's true but it should not be the only one working combination. Indeed
the m25p80.c driver doesn't care about the manufacturer prefix and only
checks the device name to match some DT compatible string. Hence
technically you could use something like:

compatible = "everspin,mr25h40", "nonjedec,spi-nor";


The "*,spi-nor" strings match the "spi-nor" entry of the m25p_ids[] array
in m25p80.c so based on the DT compatible string, the kernel knows that the
memory device can be handled by this m25p80.c driver.

Then from m25p80.c, flash_name should point to the "mr25h40" string, which
will be matched in spi_nor_scan() using the "mr25h40" entry of the
spi_nor_ids[] array.

The "nonjedec,spi-nor" DT compatible string in not documented yet but we
could document it if this solution is chosen. This would be a first solution.

Another solution is, like you did in this patch, to add the relevant
entries in the m25p_ids[] array in m25p80.c. I have no problem with that.
However I would just want some consistent naming scheme. I mean a
"mr25h256" entry already exists in the m25p_ids[] array. We must keep this
entry to be backward compatible with existing .dtb files. Then I think news
entries should simply be named "mr25h10" and "mr25h40", without the
"-nonjedec" suffix. This way, the naming scheme for Everspin memory would
be consistent in both the m25p_ids[] and spi_nor_ids[] arrays.
No change is needed in spi-nor.c

Then the 3rd solution: adding a "-nonjedec" suffix to the "mr25h10" and
"mr25h40" entries but keep the "mr25h256" name unchanged. Then add the
"mr25h10-nonjedec" and "mr25h40-nonjedec" entries in m25p_ids[].
Indeed, this is what you propose with your patch, except that you didn't
handle the case of the mr25h10 devices then ;) , but honestly this is not
the solution I prefer.

I don't want to force anything, I just want this to be discussed a little
bit more but maybe not so long because at some point we have to make a
decision otherwise the patch would be forgotten.

Marek, what do you think about that?

> change the chip string and add a compatible entry to bless
> 
> 	compatible = "mr25h40-nonjedec";
> 
> as the right way.
> 
> Fixes: edd0c8f4932d ("mtd: spi-nor: Add support for mr25h40")

I'm not sure whether this could really be considered as a bug since it is
already possible to use this memory even with device trees.

> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
>  drivers/mtd/devices/m25p80.c  | 1 +
>  drivers/mtd/spi-nor/spi-nor.c | 2 +-
>  2 files changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
> index 9cf7fcd28034..bd0c335692d2 100644
> --- a/drivers/mtd/devices/m25p80.c
> +++ b/drivers/mtd/devices/m25p80.c
> @@ -304,6 +304,7 @@ static const struct spi_device_id m25p_ids[] = {
>  	{"m25p05-nonjedec"},	{"m25p10-nonjedec"},	{"m25p20-nonjedec"},
>  	{"m25p40-nonjedec"},	{"m25p80-nonjedec"},	{"m25p16-nonjedec"},
>  	{"m25p32-nonjedec"},	{"m25p64-nonjedec"},	{"m25p128-nonjedec"},
> +	{"mr25h40-nonjedec"},
>  
>  	{ },
>  };
> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> index bbdbbd763c9d..3a8042fe44f0 100644
> --- a/drivers/mtd/spi-nor/spi-nor.c
> +++ b/drivers/mtd/spi-nor/spi-nor.c
> @@ -825,7 +825,7 @@ static const struct flash_info spi_nor_ids[] = {
>  	/* Everspin */
>  	{ "mr25h256", CAT25_INFO( 32 * 1024, 1, 256, 2, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) },
>  	{ "mr25h10",  CAT25_INFO(128 * 1024, 1, 256, 3, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) },
> -	{ "mr25h40",  CAT25_INFO(512 * 1024, 1, 256, 3, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) },
> +	{ "mr25h40-nonjedec",  CAT25_INFO(512 * 1024, 1, 256, 3, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) },

Removing the old entry might create regressions if people have already
started to use the "mr25h40" name in their .dtb files or in some platform
device structures. It is possible even if this entry is quite recent.

>  
>  	/* Fujitsu */
>  	{ "mb85rs1mt", INFO(0x047f27, 0, 128 * 1024, 1, SPI_NOR_NO_ERASE) },
> 

  parent reply	other threads:[~2017-01-13 14:30 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-13  9:35 [PATCH] mtd: spi-nor: don't claim mr25h40 to be JEDEC compatible Uwe Kleine-König
2017-01-13  9:51 ` Rafał Miłecki
2017-01-13  9:58   ` Uwe Kleine-König
2017-01-13 14:40     ` Rafał Miłecki
2017-01-13 10:02 ` Uwe Kleine-König
2017-01-13 14:30 ` Cyrille Pitchen [this message]
2017-01-13 14:49   ` Cyrille Pitchen
     [not found] ` <20170113093509.25737-1-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2017-01-13 18:42   ` Geert Uytterhoeven
2017-01-13 18:42     ` Geert Uytterhoeven
     [not found]     ` <CAMuHMdXJi9hJrY0ZV37gejp2XC6fkuLF7i7BqX4CUYTB7j_q1A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-01-13 19:42       ` Mark Rutland
2017-01-13 19:42         ` Mark Rutland
2017-01-16 10:40         ` Uwe Kleine-König
2017-01-16 10:40           ` Uwe Kleine-König

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2b0640c0-09ce-22d4-bd02-729fbed8c608@atmel.com \
    --to=cyrille.pitchen@atmel.com \
    --cc=iwamoto@allied-telesis.co.jp \
    --cc=jagan@openedev.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-mtd@lists.infradead.org \
    --cc=marex@denx.de \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.