hw/ssi/imx_spi: Removed unnecessary cast of rx data received from slave
authorEden Mikitas <e.mikitas@gmail.com>
Tue, 2 Jun 2020 12:44:34 +0000 (13:44 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 5 Jun 2020 16:23:08 +0000 (17:23 +0100)
When inserting the value retrieved (rx) from the spi slave, rx is pushed to
rx_fifo after being cast to uint8_t. rx_fifo is a fifo32, and the rx
register the driver uses is also 32 bit. This zeroes the 24 most
significant bits of rx. This proved problematic with devices that expect to
use the whole 32 bits of the rx register.

Signed-off-by: Eden Mikitas <e.mikitas@gmail.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/ssi/imx_spi.c

index 6fef5c795885d82ca8abb0ac1cacdcc1f31e7e89..43b2f14dd280062020445c1180cb937194e9cd3c 100644 (file)
@@ -206,7 +206,7 @@ static void imx_spi_flush_txfifo(IMXSPIState *s)
         if (fifo32_is_full(&s->rx_fifo)) {
             s->regs[ECSPI_STATREG] |= ECSPI_STATREG_RO;
         } else {
-            fifo32_push(&s->rx_fifo, (uint8_t)rx);
+            fifo32_push(&s->rx_fifo, rx);
         }
 
         if (s->burst_length <= 0) {