Commit 306c68aa authored by Roel Kluin's avatar Roel Kluin Committed by Linus Torvalds

spi: pxa2xx: limit reaches -1

On line 944 the return value of flush() is considered as a boolean,
but limit reaches -1 upon timeout which evaluates to true.

On 540, 594, 720 the same occurs for wait_ssp_rx_stall()
On 536 the same occurs for wait_dma_channel_stop()
Signed-off-by: default avatarRoel Kluin <roel.kluin@gmail.com>
Acked-by: default avatarEric Miao <eric.miao@marvell.com>
Cc: David Brownell <david-b@pacbell.net>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent dc8c7f89
...@@ -213,7 +213,7 @@ static int flush(struct driver_data *drv_data) ...@@ -213,7 +213,7 @@ static int flush(struct driver_data *drv_data)
while (read_SSSR(reg) & SSSR_RNE) { while (read_SSSR(reg) & SSSR_RNE) {
read_SSDR(reg); read_SSDR(reg);
} }
} while ((read_SSSR(reg) & SSSR_BSY) && limit--); } while ((read_SSSR(reg) & SSSR_BSY) && --limit);
write_SSSR(SSSR_ROR, reg); write_SSSR(SSSR_ROR, reg);
return limit; return limit;
...@@ -484,7 +484,7 @@ static int wait_ssp_rx_stall(void const __iomem *ioaddr) ...@@ -484,7 +484,7 @@ static int wait_ssp_rx_stall(void const __iomem *ioaddr)
{ {
unsigned long limit = loops_per_jiffy << 1; unsigned long limit = loops_per_jiffy << 1;
while ((read_SSSR(ioaddr) & SSSR_BSY) && limit--) while ((read_SSSR(ioaddr) & SSSR_BSY) && --limit)
cpu_relax(); cpu_relax();
return limit; return limit;
...@@ -494,7 +494,7 @@ static int wait_dma_channel_stop(int channel) ...@@ -494,7 +494,7 @@ static int wait_dma_channel_stop(int channel)
{ {
unsigned long limit = loops_per_jiffy << 1; unsigned long limit = loops_per_jiffy << 1;
while (!(DCSR(channel) & DCSR_STOPSTATE) && limit--) while (!(DCSR(channel) & DCSR_STOPSTATE) && --limit)
cpu_relax(); cpu_relax();
return limit; return limit;
......
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