aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSonic Zhang <sonic.zhang@analog.com>2011-06-21 18:01:49 +0800
committerMike Frysinger <vapier@gentoo.org>2011-10-15 15:30:54 -0400
commitbae47dcdf4c54f00ed8e9541151fc4f069231c02 (patch)
treed2dc7f0247d305cf6856f04ef8be8cb04f1647e8
parent4c41042d1d4c29e596b31e2d14b26d2940fb24b4 (diff)
downloadblackfin-for-spi.tar.gz
spi/bfin_spi: respect cs_change even in last transferfor-spi
According to the definition of flag cs_change in spi.h, CS should stay active in the last transfer of a message until the first transfer of the next message if it's set. The Blackfin SPI driver was not checking this before deactivating the CS. Reported-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r--drivers/spi/spi-bfin5xx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/spi/spi-bfin5xx.c b/drivers/spi/spi-bfin5xx.c
index b8d25f2b7038a..c3eef7a1469ff 100644
--- a/drivers/spi/spi-bfin5xx.c
+++ b/drivers/spi/spi-bfin5xx.c
@@ -870,7 +870,7 @@ static void bfin_spi_pump_transfers(unsigned long data)
message->actual_length += drv_data->len_in_bytes;
/* Move to next transfer of this msg */
message->state = bfin_spi_next_transfer(drv_data);
- if (drv_data->cs_change)
+ if (drv_data->cs_change && message->state != DONE_STATE)
bfin_spi_cs_deactive(drv_data, chip);
}