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

Boris Brezillon boris.brezillon at bootlin.com
Mon Feb 12 04:32:41 PST 2018


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

> On Tuesday 06 February 2018 04:51 AM, Boris Brezillon wrote:
> > From: Boris Brezillon <boris.brezillon at 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 at 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
http://bootlin.com



More information about the linux-mtd mailing list