Hi Vignesh, > -----Original Message----- > From: linux-spi-owner@xxxxxxxxxxxxxxx <linux-spi-owner@xxxxxxxxxxxxxxx> On Behalf Of > Vignesh Raghavendra > Sent: Friday, March 29, 2019 4:32 PM > To: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx>; Naga Sureshkumar Relli > <nagasure@xxxxxxxxxx> > Cc: broonie@xxxxxxxxxx; bbrezillon@xxxxxxxxxx; linux-spi@xxxxxxxxxxxxxxx; > dwmw2@xxxxxxxxxxxxx; marek.vasut@xxxxxxxxx; richard@xxxxxx; linux- > mtd@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Michal Simek <michals@xxxxxxxxxx>; > nagasuresh12@xxxxxxxxx > Subject: Re: [LINUX PATCH 2/3] spi: spi-mem: call spi_mem_default_supports_op() first > > Hi Naga Sureshkumar > > On 29/03/19 1:25 AM, Boris Brezillon wrote: > > On Thu, 28 Mar 2019 16:46:24 +0530 > > Naga Sureshkumar Relli <naga.sureshkumar.relli@xxxxxxxxxx> wrote: > > > >> Call spi_mem_default_supports_op() first, before calling controller > >> specific ctlr->supports_op(). > >> With this, controller drivers can drop checking the buswidths again. > > > > No, this was done on purpose, in case the controller does not want the > > default check to be applied (say it does not need bus-width props to > > be defined and has another way to check if a device can be accessed in > > dual, quad or octal mode). > > Just call spi_mem_default_supports_op() from your driver > > ->supports_op() hook if needed. > > > > Could you rework to follow Boris's suggestion here? Sure. I will update. Thanks, Naga Sureshkumar Relli > > >> > >> Suggested-by: Vignesh Raghavendra <vigneshr@xxxxxx> > >> Signed-off-by: Naga Sureshkumar Relli > >> <naga.sureshkumar.relli@xxxxxxxxxx> > >> --- > >> Details can be found at https://lkml.org/lkml/2019/3/1/183 > >> --- > >> drivers/spi/spi-mem.c | 7 +++++-- > >> 1 file changed, 5 insertions(+), 2 deletions(-) > >> > >> diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c index > >> 5217a56..56aa158 100644 > >> --- a/drivers/spi/spi-mem.c > >> +++ b/drivers/spi/spi-mem.c > >> @@ -189,11 +189,14 @@ static bool spi_mem_internal_supports_op(struct spi_mem > *mem, > >> const struct spi_mem_op *op) > >> { > >> struct spi_controller *ctlr = mem->spi->controller; > >> + bool ret; > >> + > >> + ret = spi_mem_default_supports_op(mem, op); > >> > >> if (ctlr->mem_ops && ctlr->mem_ops->supports_op) > >> - return ctlr->mem_ops->supports_op(mem, op); > >> + ret = ctlr->mem_ops->supports_op(mem, op); > >> > >> - return spi_mem_default_supports_op(mem, op); > >> + return ret; > >> } > >> > >> /** > > > > -- > Regards > Vignesh