On Fri, Sep 25, 2020 at 2:54 PM Ikjoon Jang <ikjn@xxxxxxxxxxxx> wrote: > > Fix a bug which limits its protocol availability in supports_op(). > > Fixes: a59b2c7c56bf ("spi: spi-mtk-nor: support standard spi properties") > Signed-off-by: Ikjoon Jang <ikjn@xxxxxxxxxxxx> > --- This is also duplicated work of https://patchwork.kernel.org/patch/11797723/, I'm going to drop this patch in v4. > > (no changes since v1) > > drivers/spi/spi-mtk-nor.c | 26 +++++++++++--------------- > 1 file changed, 11 insertions(+), 15 deletions(-) > > diff --git a/drivers/spi/spi-mtk-nor.c b/drivers/spi/spi-mtk-nor.c > index 6e6ca2b8e6c8..0f7d4ec68730 100644 > --- a/drivers/spi/spi-mtk-nor.c > +++ b/drivers/spi/spi-mtk-nor.c > @@ -211,28 +211,24 @@ static bool mtk_nor_supports_op(struct spi_mem *mem, > if (op->cmd.buswidth != 1) > return false; > > + if (!spi_mem_default_supports_op(mem, op)) > + return false; > + > if ((op->addr.nbytes == 3) || (op->addr.nbytes == 4)) { > - switch(op->data.dir) { > - case SPI_MEM_DATA_IN: > - if (!mtk_nor_match_read(op)) > - return false; > - break; > - case SPI_MEM_DATA_OUT: > - if ((op->addr.buswidth != 1) || > - (op->dummy.nbytes != 0) || > - (op->data.buswidth != 1)) > - return false; > - break; > - default: > - break; > - } > + if ((op->data.dir == SPI_MEM_DATA_IN) && mtk_nor_match_read(op)) > + return true; > + else if (op->data.dir == SPI_MEM_DATA_OUT) > + return (op->addr.buswidth == 1) && > + (op->dummy.nbytes == 0) && > + (op->data.buswidth == 1); > } > + > len = op->cmd.nbytes + op->addr.nbytes + op->dummy.nbytes; > if ((len > MTK_NOR_PRG_MAX_SIZE) || > ((op->data.nbytes) && (len == MTK_NOR_PRG_MAX_SIZE))) > return false; > > - return spi_mem_default_supports_op(mem, op); > + return true; > } > > static void mtk_nor_setup_bus(struct mtk_nor *sp, const struct spi_mem_op *op) > -- > 2.28.0.681.g6f77f65b4e-goog >