]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
spi: mpc8xxx: Get rid of is_read
authorMario Six <mario.six@gdsys.cc>
Sun, 28 Apr 2019 20:28:44 +0000 (01:58 +0530)
committerJagan Teki <jagan@amarulasolutions.com>
Mon, 10 Jun 2019 12:29:48 +0000 (17:59 +0530)
Get rid of the is_read variable, and just keep the state of the "not
empty" and "not full" events in two boolean variables within the loop
body.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Acked-by: Jagan Teki <jagan@amarulasolutions.com>
drivers/spi/mpc8xxx_spi.c

index ca345709012966cdbe66e76bc497002fd155bb77..962ef710f8cf8835504c429e85f61fd2f49a0ad7 100644 (file)
@@ -90,7 +90,7 @@ int spi_xfer(struct spi_slave *slave, uint bitlen, const void *dout, void *din,
        spi8xxx_t *spi = &((immap_t *)(CONFIG_SYS_IMMR))->spi;
        uint tmpdout, tmpdin, event;
        int num_blks = DIV_ROUND_UP(bitlen, 32);
-       int tm, is_read = 0;
+       int tm;
        uchar char_size = 32;
 
        debug("%s: slave %u:%u dout %08X din %08X bitlen %u\n", __func__,
@@ -144,12 +144,14 @@ int spi_xfer(struct spi_slave *slave, uint bitlen, const void *dout, void *din,
                 * or time out (1 second = 1000 ms)
                 * The NE event must be read and cleared first
                 */
-               for (tm = 0, is_read = 0; tm < SPI_TIMEOUT; ++tm) {
+               for (tm = 0; tm < SPI_TIMEOUT; ++tm) {
                        event = in_be32(&spi->event);
-                       if (event & SPI_EV_NE) {
+                       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);
-                               is_read = 1;
 
                                *(u32 *)din = (tmpdin << (32 - char_size));
                                if (char_size == 32) {
@@ -163,7 +165,7 @@ int spi_xfer(struct spi_slave *slave, uint bitlen, const void *dout, void *din,
                         * in the future put an arbitrary delay after writing
                         * the device.  Arbitrary delays suck, though...
                         */
-                       if (is_read && (event & SPI_EV_NF))
+                       if (have_ne && have_nf)
                                break;
                }
                if (tm >= SPI_TIMEOUT)