Messages in this thread Patch in this message | | | Date | Sun, 15 Mar 2020 18:08:53 +0100 | From | Michał Mirosław <> | Subject | [PATCH] spi: fix cs_change for last transfer |
| |
Generic spi_transfer_one_message() implementation introduced in commit b158935f70b9 has a bug in cs_change handling: it keeps CS asserted when cs_change is set. Fix it.
Cc: stable@vger.kernel.org Fixes: b158935f70b9 ("spi: Provide common spi_message processing loop") Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> --- drivers/spi/spi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 8994545367a2..5012eabde468 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -1206,7 +1206,7 @@ static int spi_transfer_one_message(struct spi_controller *ctlr, struct spi_message *msg) { struct spi_transfer *xfer; - bool keep_cs = false; + bool keep_cs = true; int ret = 0; struct spi_statistics *statm = &ctlr->statistics; struct spi_statistics *stats = &msg->spi->statistics; @@ -1268,7 +1268,7 @@ static int spi_transfer_one_message(struct spi_controller *ctlr, if (xfer->cs_change) { if (list_is_last(&xfer->transfer_list, &msg->transfers)) { - keep_cs = true; + keep_cs = false; } else { spi_set_cs(msg->spi, false); _spi_transfer_cs_change_delay(msg, xfer); -- 2.20.1
| |