[PATCH 4/5] mtd: m25p80: remove M25PXX_USE_FAST_READ Kconfig
Brian Norris
computersforpeace at gmail.com
Thu Oct 24 10:39:12 PDT 2013
On Thu, Oct 24, 2013 at 02:42:53PM +0530, Sourav Poddar wrote:
> On Thursday 24 October 2013 02:37 PM, Sourav Poddar wrote:
> >On Thursday 24 October 2013 08:28 AM, Brian Norris wrote:
> >>--- 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;
> >>
> >This comment is in sync with my quad read mode support patch on
> >the mtd list.
> >
> >Here, you are defaulting the fast read to be true.
It was already default true for non-DT case where
M25PXX_USE_FAST_READ=y. I believe my code is purely a refactoring of the
code, assuming M25PXX_USE_FAST_READ is always enabled (and removing the
Kconfig).
> >Once I add quad mode
> >on top of this, I will set flash->quad_read = true. So, we will have both
> >fast and quad read set(which will not be correct). So, it is
> >necessary to default to fast read ?
I think my patch is a correct refactoring by itself. Any problem your
quad read patch has with it would still be a problem without this patch.
So, without quad-read support, we should default to fast-read unless the
chip doesn't support it. I think this is reasonable.
Now, once you add quad-read, you need to have quad-read override
fast-read.
> Though, we will hit this scenario only for a non dt case. For dt
> case, things will be fine.
Yes, but we need to make sure things make sense for all cases.
> >>-#ifdef CONFIG_M25PXX_USE_FAST_READ
> >>- flash->fast_read = true;
> >>-#endif
> >>+ /* Some devices cannot do fast-read, no matter what DT tells us */
> >> if (info->flags& M25P_NO_FR)
> >> flash->fast_read = false;
> >>
> >
I just realized this: fast-read and quad-read are mutually exclusive, so
the field that is currently 'bool m25p.fast_read' could easily just become
an 'enum m25p.read_type' (with values M25P_READ_NORMAL, M25P_READ_FAST,
M25P_READ_QUAD). That may or may not help your quad read patch.
I can delay this patch until others have looked at it, if you'd like.
You can resubmit your quad read patch without this patch 4. (But I think
this patch will help clean up your patch slightly.)
Brian
More information about the linux-mtd
mailing list