spi: mxc_spi: Fix double incrementing read pointer for unaligned buffers
authorTimo Herbrecher <t.herbrecher@gateware.de>
Tue, 15 Oct 2013 18:35:09 +0000 (00:05 +0530)
committerJagannadha Sutradharudu Teki <jaganna@xilinx.com>
Tue, 15 Oct 2013 18:44:30 +0000 (00:14 +0530)
If dout buffer is not 32 bit-aligned or data to transmit is not multiple
of 32 bit the read data pointer is already incremented on single byte reads.

Signed-off-by: Timo Herbrecher <t.herbrecher@gateware.de>
Signed-off-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
drivers/spi/mxc_spi.c

index fd72a65d3a96fb20b86586ed27aeda3dc5ed3a0c..95dd03f7b3ff5ab43d33a37a2a8c1f495e2ae82a 100644 (file)
@@ -255,8 +255,8 @@ int spi_xchg_single(struct spi_slave *slave, unsigned int bitlen,
                        } else {
                                data = *(u32 *)dout;
                                data = cpu_to_be32(data);
+                               dout += 4;
                        }
-                       dout += 4;
                }
                debug("Sending SPI 0x%x\n", data);
                reg_write(&regs->txdata, data);