]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
spi: atmel-quadspi: Avoid overwriting delay register settings
authorAlexander Dahl <ada@thorsis.com>
Wed, 18 Sep 2024 08:27:43 +0000 (10:27 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 4 Oct 2024 14:29:38 +0000 (16:29 +0200)
commitecb8a79d21fb9c39c7aceb464ab7c21e31e70729
tree13ec7bbaab8e0c329b0c84c505d9be8574af3940
parent54fd87259c8520187e3b9b3d1f18bf6a91c0a993
spi: atmel-quadspi: Avoid overwriting delay register settings

[ Upstream commit 329ca3eed4a9a161515a8714be6ba182321385c7 ]

Previously the MR and SCR registers were just set with the supposedly
required values, from cached register values (cached reg content
initialized to zero).

All parts fixed here did not consider the current register (cache)
content, which would make future support of cs_setup, cs_hold, and
cs_inactive impossible.

Setting SCBR in atmel_qspi_setup() erases a possible DLYBS setting from
atmel_qspi_set_cs_timing().  The DLYBS setting is applied by ORing over
the current setting, without resetting the bits first.  All writes to MR
did not consider possible settings of DLYCS and DLYBCT.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
Fixes: f732646d0ccd ("spi: atmel-quadspi: Add support for configuring CS timing")
Link: https://patch.msgid.link/20240918082744.379610-2-ada@thorsis.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/atmel-quadspi.c