Hi Yoshitaka, On 08/09/21 05:29AM, Yoshitaka Ikeda wrote: > The reason for dividing by zero is because the dummy bus width is zero, > but if the dummy n bytes is zero, it indicates that there is no data transfer, > so there is no need for calculation. > > Fixes: 7512eaf54190 ("spi: cadence-quadspi: Fix dummy cycle calculation when buswidth > 1") You are right, there is no need for this. > Signed-off-by: Yoshitaka Ikeda <ikeda@xxxxxxxxxxxx> > --- > drivers/spi/atmel-quadspi.c | 2 +- > drivers/spi/spi-bcm-qspi.c | 3 ++- > drivers/spi/spi-mtk-nor.c | 2 +- > drivers/spi/spi-stm32-qspi.c | 2 +- > 4 files changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/spi/atmel-quadspi.c b/drivers/spi/atmel-quadspi.c > index 95d4fa32c299..92d9610df1fd 100644 > --- a/drivers/spi/atmel-quadspi.c > +++ b/drivers/spi/atmel-quadspi.c > @@ -310,7 +310,7 @@ static int atmel_qspi_set_cfg(struct atmel_qspi *aq, > return mode; > ifr |= atmel_qspi_modes[mode].config; > > - if (op->dummy.buswidth && op->dummy.nbytes) > + if (op->dummy.nbytes) > dummy_cycles = op->dummy.nbytes * 8 / op->dummy.buswidth; > > /* > diff --git a/drivers/spi/spi-bcm-qspi.c b/drivers/spi/spi-bcm-qspi.c > index a78e56f566dd..0d95fe54b3c0 100644 > --- a/drivers/spi/spi-bcm-qspi.c > +++ b/drivers/spi/spi-bcm-qspi.c > @@ -395,7 +395,8 @@ static int bcm_qspi_bspi_set_flex_mode(struct bcm_qspi *qspi, > if (addrlen == BSPI_ADDRLEN_4BYTES) > bpp = BSPI_BPP_ADDR_SELECT_MASK; > > - bpp |= (op->dummy.nbytes * 8) / op->dummy.buswidth; > + if (op->dummy.nbytes) > + bpp |= (op->dummy.nbytes * 8) / op->dummy.buswidth; This is a legitimate fix. The other 3 won't make much of a difference in practice but are good changes regardless IMO. Acked-by: Pratyush Yadav <p.yadav@xxxxxx> > > switch (width) { > case SPI_NBITS_SINGLE: > diff --git a/drivers/spi/spi-mtk-nor.c b/drivers/spi/spi-mtk-nor.c > index 41e7b341d261..5c93730615f8 100644 > --- a/drivers/spi/spi-mtk-nor.c > +++ b/drivers/spi/spi-mtk-nor.c > @@ -160,7 +160,7 @@ static bool mtk_nor_match_read(const struct spi_mem_op *op) > { > int dummy = 0; > > - if (op->dummy.buswidth) > + if (op->dummy.nbytes) > dummy = op->dummy.nbytes * BITS_PER_BYTE / op->dummy.buswidth; > > if ((op->data.buswidth == 2) || (op->data.buswidth == 4)) { > diff --git a/drivers/spi/spi-stm32-qspi.c b/drivers/spi/spi-stm32-qspi.c > index 27f35aa2d746..514337c86d2c 100644 > --- a/drivers/spi/spi-stm32-qspi.c > +++ b/drivers/spi/spi-stm32-qspi.c > @@ -397,7 +397,7 @@ static int stm32_qspi_send(struct spi_mem *mem, const struct spi_mem_op *op) > ccr |= FIELD_PREP(CCR_ADSIZE_MASK, op->addr.nbytes - 1); > } > > - if (op->dummy.buswidth && op->dummy.nbytes) > + if (op->dummy.nbytes) > ccr |= FIELD_PREP(CCR_DCYC_MASK, > op->dummy.nbytes * 8 / op->dummy.buswidth); > > -- > 2.33.0 -- Regards, Pratyush Yadav Texas Instruments Inc.