Re: [PATCH v5 01/19] spi: spi-mem: allow specifying whether an op is DTR or not

From: Pratyush Yadav
Date: Fri May 22 2020 - 06:46:06 EST


[Seems like I forgot to send this and it stayed in my Drafts folder.
Anyway, fixed in v7]

Hi Mason,

On 21/05/20 04:27PM, masonccyang@xxxxxxxxxxx wrote:
>
> Hi Pratyush,
>
> Given cmd.nbytes a initial value & check it !
>
> >
> > [PATCH v5 01/19] spi: spi-mem: allow specifying whether an op is DTR or
> not
> >
> > Each phase is given a separate 'dtr' field so mixed protocols like
> > 4S-4D-4D can be supported.
> >
> > Signed-off-by: Pratyush Yadav <p.yadav@xxxxxx>
> > ---
> > drivers/spi/spi-mem.c | 3 +++
> > include/linux/spi/spi-mem.h | 8 ++++++++
> > 2 files changed, 11 insertions(+)
> >
> > diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c
> > index 9a86cc27fcc0..93e255287ab9 100644
> > --- a/drivers/spi/spi-mem.c
> > +++ b/drivers/spi/spi-mem.c
> > @@ -156,6 +156,9 @@ bool spi_mem_default_supports_op(struct spi_mem
> *mem,
> > op->data.dir == SPI_MEM_DATA_OUT))
> > return false;
> >
> > + if (op->cmd.dtr || op->addr.dtr || op->dummy.dtr || op->data.dtr)
> > + return false;
> > +
>
> + if (op->cmd.nbytes != 1)
> + return false;

Good catch. Will fix.

> > return true;
> > }
> > EXPORT_SYMBOL_GPL(spi_mem_default_supports_op);
>
>
> static int spi_mem_check_op(const struct spi_mem_op *op)
> {
> - if (!op->cmd.buswidth)
> + if (!op->cmd.buswidth || op->cmd.nbytes < 1 ||
> op->cmd.nbytes > 2)
> return -EINVAL;

Will fix.

>
> > diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h
> > index af9ff2f0f1b2..e3dcb956bf61 100644
> > --- a/include/linux/spi/spi-mem.h
> > +++ b/include/linux/spi/spi-mem.h
>
> #define SPI_MEM_OP_CMD(__opcode, __buswidth) \
> { \
> .buswidth = __buswidth, \
> .opcode = __opcode, \
> + .nbytes = 1, \
> }

Will fix. Thanks.

--
Regards,
Pratyush Yadav
Texas Instruments India