RE: [PATCH] spi: tegra210-quad: Fix iterator outside loop

From: Krishna Yarlagadda
Date: Mon Feb 27 2023 - 05:36:26 EST


> -----Original Message-----
> From: Mark Brown <broonie@xxxxxxxxxx>
> Sent: 24 February 2023 23:26
> To: Krishna Yarlagadda <kyarlagadda@xxxxxxxxxx>
> Cc: linux-spi@xxxxxxxxxxxxxxx; linux-tegra@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; thierry.reding@xxxxxxxxx; Jonathan Hunter
> <jonathanh@xxxxxxxxxx>; Sowjanya Komatineni
> <skomatineni@xxxxxxxxxx>; Laxman Dewangan <ldewangan@xxxxxxxxxx>
> Subject: Re: [PATCH] spi: tegra210-quad: Fix iterator outside loop
>
> On Fri, Feb 24, 2023 at 04:50:00PM +0000, Krishna Yarlagadda wrote:
>
> > > > msg->actual_length += xfer->len;
> > > > + if (!xfer->cs_change && transfer_phase == DATA_TRANSFER)
> > > {
> > > > + tegra_qspi_transfer_end(spi);
> > > > + spi_transfer_delay_exec(xfer);
> > > > + }
> > > > transfer_phase++;
> > > > }
> > > > - if (!xfer->cs_change) {
> > > > - tegra_qspi_transfer_end(spi);
> > > > - spi_transfer_delay_exec(xfer);
> > > > - }
> updating the length of the message.
> > > This looks like it'll do the wrong thing and do a change on every
> > > transfer if cs_change isn't set?
>
> > This condition is hit only in data phase which is end of message.
>
> Shouldn't this just be moved into the DATA_TRANSFER case statement?
Calling transfer_end after updating message length.