Commit f4aec798 authored by George Shore's avatar George Shore Committed by Grant Likely

spi/dw_spi: remove conditional from 'poll_transfer'.

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: default avatarGeorge Shore <george@georgeshore.com>
Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
parent 426c0093
...@@ -408,12 +408,9 @@ static irqreturn_t dw_spi_irq(int irq, void *dev_id) ...@@ -408,12 +408,9 @@ static irqreturn_t dw_spi_irq(int irq, void *dev_id)
/* Must be called inside pump_transfers() */ /* Must be called inside pump_transfers() */
static void poll_transfer(struct dw_spi *dws) static void poll_transfer(struct dw_spi *dws)
{ {
if (dws->tx) { while (dws->write(dws))
while (dws->write(dws)) dws->read(dws);
dws->read(dws);
}
dws->read(dws);
transfer_complete(dws); transfer_complete(dws);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment