spi: Fix incorrect cs_setup delay handling
authorHector Martin <marcan@marcan.st>
Fri, 10 Dec 2021 17:05:34 +0000 (02:05 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 10:03:36 +0000 (11:03 +0100)
commit3d3fbbf05fe828bb0d94dbcb74390d790c7c07db
tree34ec70cb900308ca20dabbea00aeff8a1fb53e9b
parent5d0933a65bbd5adcaf41d2b0ff3e847e9791c77b
spi: Fix incorrect cs_setup delay handling

[ Upstream commit 95c07247399536f83b89dc60cfe7b279d17e69f6 ]

Move the cs_setup delay to the end of spi_set_cs.

From include/linux/spi/spi.h:

 * @cs_setup: delay to be introduced by the controller after CS is
   asserted

The cs_setup delay needs to happen *after* CS is asserted, that is, at
the end of spi_set_cs, not at the beginning. Otherwise we're just
delaying before the SPI transaction starts at all, which isn't very
useful.

No drivers use this right now, but that is likely to change soon with an
upcoming Apple SPI HID transport driver.

Fixes: 25093bdeb6bc ("spi: implement SW control for CS times")
Signed-off-by: Hector Martin <marcan@marcan.st>
Link: https://lore.kernel.org/r/20211210170534.177139-1-marcan@marcan.st
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/spi.c