Re: [RFC PATCH 5/6] mtd: spi-nor: Use the spi_mem_xx() API

Boris Brezillon
2018-02-12T12:32:55Z

On Mon, 12 Feb 2018 17:14:21 +0530
Vignesh R <vigneshr@ti.com> wrote:

> On Tuesday 06 February 2018 04:51 AM, Boris Brezillon wrote:
> > From: Boris Brezillon <boris.brezillon@free-electrons.com>
> >
> > The spi_mem_xxx() API has been introduced to replace the
> > spi_flash_read() one. Make use of it so we can get rid of
> > spi_flash_read().
> >
> > Note that using spi_mem_xx() also simplifies the code because this API
> > takes care of using the regular spi_sync() interface when the optimized
> > ->mem_ops interface is not implemented by the controller.
> >
> > Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> > ---
> [...]
> > /*
> > @@ -138,92 +121,42 @@ static ssize_t m25p80_read(struct spi_nor *nor, loff_t from, size_t len,
> > u_char *buf)
> > {
> > struct m25p *flash = nor->priv;
> > - struct spi_device *spi = flash->spi;
> > - unsigned int inst_nbits, addr_nbits, data_nbits, data_idx;
> > - struct spi_transfer t[3];
> > - struct spi_message m;
> > - unsigned int dummy = nor->read_dummy;
> > - ssize_t ret;
> > - int cmd_sz;
> > + u8 addrs[4];
> > + struct spi_mem_op op =
> > + SPI_MEM_OP(SPI_MEM_OP_CMD(nor->read_opcode, 1),
> > + SPI_MEM_OP_ADDRS(nor->addr_width, addrs, 1),
> > + SPI_MEM_OP_DUMMY(nor->read_dummy, 1),
> > + SPI_MEM_OP_DATA_OUT(len, buf, 1));
>
> ^^^^ SPI_MEM_OP_DATA_IN

Nice catch! I'll fix that in v2.

--
Boris Brezillon, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering