[PATCH 4/5] mtd: m25p80: remove M25PXX_USE_FAST_READ Kconfig

Brian Norris computersforpeace at gmail.com
Wed Oct 30 16:38:09 PDT 2013


I see I never responded to this one.

On Sun, Oct 27, 2013 at 05:32:42PM +0100, Marek Vasut wrote:
> Hi Brian,
> 
> > Remove the compile-time option for FAST_READ, since we have run-time
> > support for detecting it.
> > 
> > Signed-off-by: Brian Norris <computersforpeace at gmail.com>
> > ---
> >  drivers/mtd/devices/Kconfig  |  7 -------
> >  drivers/mtd/devices/m25p80.c | 11 ++++++-----
> >  2 files changed, 6 insertions(+), 12 deletions(-)
> > 
> > diff --git a/drivers/mtd/devices/Kconfig b/drivers/mtd/devices/Kconfig
> > index 74ab4b7..0128138 100644
> > --- a/drivers/mtd/devices/Kconfig
> > +++ b/drivers/mtd/devices/Kconfig
> > @@ -95,13 +95,6 @@ config MTD_M25P80
> >  	  if you want to specify device partitioning or to use a device which
> >  	  doesn't support the JEDEC ID instruction.
> > 
> > -config M25PXX_USE_FAST_READ
> > -	bool "Use FAST_READ OPCode allowing SPI CLK >= 50MHz"
> > -	depends on MTD_M25P80
> > -	default y
> > -	help
> > -	  This option enables FAST_READ access supported by ST M25Pxx.
> > -
> >  config MTD_SPEAR_SMI
> >  	tristate "SPEAR MTD NOR Support through SMI controller"
> >  	depends on PLAT_SPEAR
> > diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
> > index 7e3ec7a..d6c5c57 100644
> > --- a/drivers/mtd/devices/m25p80.c
> > +++ b/drivers/mtd/devices/m25p80.c
> > @@ -1055,13 +1055,14 @@ static int m25p_probe(struct spi_device *spi)
> >  	flash->page_size = info->page_size;
> >  	flash->mtd.writebufsize = flash->page_size;
> > 
> > -	flash->fast_read = false;
> > -	if (np && of_property_read_bool(np, "m25p,fast-read"))
> > +	if (np)
> > +		/* If we were instantiated by DT, use it */
> > +		flash->fast_read = of_property_read_bool(np, "m25p,fast-read");
> > +	else
> > +		/* If we weren't instantiated by DT, default to fast-read */
> >  		flash->fast_read = true;
> 
> We should default to FALSE , unless explicitly requested by DT, am I wrong? 
> Otherwise this might break the old chips.

I believe my patch is simply a refactoring of the existing code with the
assumption that M25PXX_USE_FAST_READ=y. (In my experience, everyone has
it set to y. Perhaps I'm wrong.)

Now, it's unclear to me what this Kconfig was used for. It's the wrong
approach for controlling fast read on a per-controller or
per-flash-device basis, as it provides a blunt hammer to disable it for
ALL systems which might use the same kernel (think multiplatform
kernels). And now we have a better alternative: the M25P_NO_FR flag for
flash which do not support fast-read.

However, if we come across SPI controllers which can't handle this, then
we might have a problem. Such a situation would really suggest that we
need to identify whether a SPI controller supports fast-read, not just
the flash device.

(Side note: IMO, given the fact that we have to have an ID table for
these flash anyway, the DT property simply provides redundant
information. In the case of the quad-read patch, we were able to
identify this early to avoid an unnecessary DT binding. But in this
case, we also have an indication of controller support for quad I/O...)

If you still object to this patch, I can drop the patch from l2-mtd.git
for now. Then Sourav will need to rebase his patch again.

Brian



More information about the linux-mtd mailing list