Message ID | 20190401044938.31237-1-andrew.smirnov@gmail.com |
---|---|
State | Not Applicable |
Delegated to: | Ambarus Tudor |
Headers | show |
Series | [1/3] mtd: devices: m25p80: Simplify m25p80_read() | expand |
Hi, On 01/04/19 10:19 AM, Andrey Smirnov wrote: > Spi_nor_read() already has an appropriate loop around .read() callback > to handle the case when not all of the data requested was written in a > signle ->read() call. Drop extra code doing the same thing in > m25p80_read(). > Thanks for the patch series! But we are in the process of completely moving m25p80.c into spi-nor.c which should take care of this series. See[1][2], I plan to post the next version shortly. Let me know if something is missing. [1] https://patchwork.ozlabs.org/patch/982925/ [2] https://patchwork.ozlabs.org/patch/982922/ Regards Vignesh > Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> > Cc: Brian Norris <computersforpeace@gmail.com> > Cc: Boris Brezillon <boris.brezillon@bootlin.com> > Cc: Marek Vasut <marek.vasut@gmail.com> > Cc: Chris Healy <cphealy@gmail.com> > Cc: linux-mtd@lists.infradead.org > Cc: linux-kernel@vger.kernel.org > --- > drivers/mtd/devices/m25p80.c | 22 +++++++--------------- > 1 file changed, 7 insertions(+), 15 deletions(-) > > diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c > index 651bab6d4e31..114f8ccea85b 100644 > --- a/drivers/mtd/devices/m25p80.c > +++ b/drivers/mtd/devices/m25p80.c > @@ -125,7 +125,6 @@ static ssize_t m25p80_read(struct spi_nor *nor, loff_t from, size_t len, > SPI_MEM_OP_ADDR(nor->addr_width, from, 1), > SPI_MEM_OP_DUMMY(nor->read_dummy, 1), > SPI_MEM_OP_DATA_IN(len, buf, 1)); > - size_t remaining = len; > int ret; > > /* get transfer protocols. */ > @@ -137,22 +136,15 @@ static ssize_t m25p80_read(struct spi_nor *nor, loff_t from, size_t len, > /* convert the dummy cycles to the number of bytes */ > op.dummy.nbytes = (nor->read_dummy * op.dummy.buswidth) / 8; > > - while (remaining) { > - op.data.nbytes = remaining < UINT_MAX ? remaining : UINT_MAX; > - ret = spi_mem_adjust_op_size(flash->spimem, &op); > - if (ret) > - return ret; > - > - ret = spi_mem_exec_op(flash->spimem, &op); > - if (ret) > - return ret; > + ret = spi_mem_adjust_op_size(flash->spimem, &op); > + if (ret) > + return ret; > > - op.addr.val += op.data.nbytes; > - remaining -= op.data.nbytes; > - op.data.buf.in += op.data.nbytes; > - } > + ret = spi_mem_exec_op(flash->spimem, &op); > + if (ret) > + return ret; > > - return len; > + return op.data.nbytes; > } > > /* >
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c index 651bab6d4e31..114f8ccea85b 100644 --- a/drivers/mtd/devices/m25p80.c +++ b/drivers/mtd/devices/m25p80.c @@ -125,7 +125,6 @@ static ssize_t m25p80_read(struct spi_nor *nor, loff_t from, size_t len, SPI_MEM_OP_ADDR(nor->addr_width, from, 1), SPI_MEM_OP_DUMMY(nor->read_dummy, 1), SPI_MEM_OP_DATA_IN(len, buf, 1)); - size_t remaining = len; int ret; /* get transfer protocols. */ @@ -137,22 +136,15 @@ static ssize_t m25p80_read(struct spi_nor *nor, loff_t from, size_t len, /* convert the dummy cycles to the number of bytes */ op.dummy.nbytes = (nor->read_dummy * op.dummy.buswidth) / 8; - while (remaining) { - op.data.nbytes = remaining < UINT_MAX ? remaining : UINT_MAX; - ret = spi_mem_adjust_op_size(flash->spimem, &op); - if (ret) - return ret; - - ret = spi_mem_exec_op(flash->spimem, &op); - if (ret) - return ret; + ret = spi_mem_adjust_op_size(flash->spimem, &op); + if (ret) + return ret; - op.addr.val += op.data.nbytes; - remaining -= op.data.nbytes; - op.data.buf.in += op.data.nbytes; - } + ret = spi_mem_exec_op(flash->spimem, &op); + if (ret) + return ret; - return len; + return op.data.nbytes; } /*
Spi_nor_read() already has an appropriate loop around .read() callback to handle the case when not all of the data requested was written in a signle ->read() call. Drop extra code doing the same thing in m25p80_read(). Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Cc: Brian Norris <computersforpeace@gmail.com> Cc: Boris Brezillon <boris.brezillon@bootlin.com> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Chris Healy <cphealy@gmail.com> Cc: linux-mtd@lists.infradead.org Cc: linux-kernel@vger.kernel.org --- drivers/mtd/devices/m25p80.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-)