Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

spi: spi-synquacer: fix set_cs handling

When the slave chip select is deasserted, DMSTOP bit
must be set.

Fixes: b0823ee35cf9 ("spi: Add spi driver for Socionext SynQuacer platform")
Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20210201073109.9036-1-jassisinghbrar@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Masahisa Kojima and committed by
Mark Brown
1c9f1750 9d2aa6db

+4
+4
drivers/spi/spi-synquacer.c
··· 490 490 val &= ~(SYNQUACER_HSSPI_DMPSEL_CS_MASK << 491 491 SYNQUACER_HSSPI_DMPSEL_CS_SHIFT); 492 492 val |= spi->chip_select << SYNQUACER_HSSPI_DMPSEL_CS_SHIFT; 493 + 494 + if (!enable) 495 + val |= SYNQUACER_HSSPI_DMSTOP_STOP; 496 + 493 497 writel(val, sspi->regs + SYNQUACER_HSSPI_REG_DMSTART); 494 498 } 495 499