Messages in this thread | | | Subject | Re: [PATCH v2] mtd: spi-nor: Fix S3AN addressing calculation | From | Cyrille Pitchen <> | Date | Fri, 20 Jan 2017 14:26:08 +0100 |
| |
Le 18/01/2017 à 17:40, Ricardo Ribalda Delgado a écrit : > The page calculation under spi_nor_s3an_addr_convert() was wrong. On > Default Address Mode we need to perform a divide by page_size. > > Fixes: 61cba34bd6c1 ("mtd: spi-nor: Add support for S3AN spi-nor devices") > Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Reviewed-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
Marek, any comment on your side?
> --- > > v2: Suggested by Marek Vasut <marek.vasut@gmail.com> > -Use more descriptive name for page > > drivers/mtd/spi-nor/spi-nor.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c > index 2a643a1bb45e..f5c3ce8ac48b 100644 > --- a/drivers/mtd/spi-nor/spi-nor.c > +++ b/drivers/mtd/spi-nor/spi-nor.c > @@ -431,11 +431,14 @@ static void spi_nor_unlock_and_unprep(struct spi_nor *nor, enum spi_nor_ops ops) > */ > static loff_t spi_nor_s3an_addr_convert(struct spi_nor *nor, unsigned int addr) > { > - unsigned int offset = addr; > + unsigned int offset; > + unsigned int page; > > - offset %= nor->page_size; > + offset = addr % nor->page_size; > + page = addr / nor->page_size; > + page <<= (nor->page_size > 512) ? 10 : 9; > > - return ((addr - offset) << 1) | offset; > + return page | offset; > } > > /* >
| |