Skip to content
Snippets Groups Projects
Commit e4da4c2e authored by Mario Six's avatar Mario Six Committed by Jagan Teki
Browse files

spi: mpc8xxx: Simplify logic a bit


We do nothing in the loop if the "not empty" event was not detected. To
simplify the logic, check if this is the case, and skip the execution of
the loop early to reduce the nesting level and flag checking.

Signed-off-by: Mario Six's avatarMario Six <mario.six@gdsys.cc>
Acked-by: default avatarJagan Teki <jagan@amarulasolutions.com>
parent 6409c610
No related branches found
No related tags found
No related merge requests found
......@@ -149,25 +149,28 @@ int spi_xfer(struct spi_slave *slave, uint bitlen, const void *dout, void *din,
bool have_ne = event & SPI_EV_NE;
bool have_nf = event & SPI_EV_NF;
if (have_ne) {
tmpdin = in_be32(&spi->rx);
setbits_be32(&spi->event, SPI_EV_NE);
*(u32 *)din = (tmpdin << (32 - char_size));
if (char_size == 32) {
/* Advance output buffer by 32 bits */
din += 4;
}
if (!have_ne)
continue;
tmpdin = in_be32(&spi->rx);
setbits_be32(&spi->event, SPI_EV_NE);
*(u32 *)din = (tmpdin << (32 - char_size));
if (char_size == 32) {
/* Advance output buffer by 32 bits */
din += 4;
}
/*
* Only bail when we've had both NE and NF events.
* This will cause timeouts on RO devices, so maybe
* in the future put an arbitrary delay after writing
* the device. Arbitrary delays suck, though...
*/
if (have_ne && have_nf)
if (have_nf)
break;
}
if (tm >= SPI_TIMEOUT)
debug("*** %s: Time out during SPI transfer\n",
__func__);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment