[PATCH 1/2] mtd: spi-nor: provide default erase_sector implementation

Marek Vasut marex at denx.de
Fri Oct 30 19:13:46 PDT 2015


On Friday, October 30, 2015 at 10:05:33 PM, Brian Norris wrote:
> On Thu, Oct 29, 2015 at 06:24:20PM -0700, Brian Norris wrote:
> > Some spi-nor drivers perform sector erase by duplicating their
> > write_reg() command. Let's not require that the driver fill this out,
> > and provide a default instead.
> > 
> > Signed-off-by: Brian Norris <computersforpeace at gmail.com>
> > ---
> > 
> >  drivers/mtd/spi-nor/spi-nor.c | 30 ++++++++++++++++++++++++++----
> >  include/linux/mtd/spi-nor.h   |  3 ++-
> >  2 files changed, 28 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/mtd/spi-nor/spi-nor.c
> > b/drivers/mtd/spi-nor/spi-nor.c index 49883905a434..58a435372be7 100644
> > --- a/drivers/mtd/spi-nor/spi-nor.c
> > +++ b/drivers/mtd/spi-nor/spi-nor.c
> > @@ -313,6 +313,29 @@ static void spi_nor_unlock_and_unprep(struct spi_nor
> > *nor, enum spi_nor_ops ops)
> > 
> >  }
> >  
> >  /*
> > 
> > + * Initiate the erasure of a single sector
> > + */
> > +static int spi_nor_erase_sector(struct spi_nor *nor, u32 addr)
> > +{
> > +	u8 buf[nor->addr_width];
> 
> Hmm, I see some warnings about variable length arrays here. Probably
> better to just set a MAX macro with the value of 4, since the extra byte
> really doesn't matter that much.

Hm yeah, this dynamic allocation is not great. You might want to put some
sort of assertion in place, to check whether addr_width isn't > MAX .

> I'll send v2.
> 
> Brian

Best regards,
Marek Vasut



More information about the linux-mtd mailing list