spi/dw_spi: remove conditional from 'poll_transfer'.
authorGeorge Shore <george@georgeshore.com>
Thu, 21 Jan 2010 11:40:51 +0000 (11:40 +0000)
committerGrant Likely <grant.likely@secretlab.ca>
Thu, 21 Jan 2010 14:25:10 +0000 (07:25 -0700)
The 'poll_transfer' function employs a conditional to test whether the
transmit buffer is valid; in doing so, on a receive operation no data is
clocked out, thus no data is clocked in and ultimately errors appear.

This removes the conditional as the transmit function will be set to a null
writer when the transmit buffer is invalid, allowing the driver to clock
0x00 out to the device to receive data from the device.

Signed-off-by: George Shore <george@georgeshore.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
drivers/spi/dw_spi.c

index d0a080a..3853df5 100644 (file)
@@ -408,12 +408,9 @@ static irqreturn_t dw_spi_irq(int irq, void *dev_id)
 /* Must be called inside pump_transfers() */
 static void poll_transfer(struct dw_spi *dws)
 {
-       if (dws->tx) {
-               while (dws->write(dws))
-                       dws->read(dws);
-       }
+       while (dws->write(dws))
+               dws->read(dws);
 
-       dws->read(dws);
        transfer_complete(dws);
 }