]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
firmware: cs_dsp: Remove async regmap writes
authorRichard Fitzgerald <rf@opensource.cirrus.com>
Tue, 25 Feb 2025 13:18:42 +0000 (13:18 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 7 Mar 2025 17:25:31 +0000 (18:25 +0100)
commitb08978fd76eb8f97f862b295400b5b584e24773b
tree6b4571980d1ea3e9d9bc0c43560ded20c0371098
parentbaa88823dd84685bb3913723ed16ec3c6ab5c6ff
firmware: cs_dsp: Remove async regmap writes

[ Upstream commit fe08b7d5085a9774abc30c26d5aebc5b9cdd6091 ]

Change calls to async regmap write functions to use the normal
blocking writes so that the cs35l56 driver can use spi_bus_lock() to
gain exclusive access to the SPI bus.

As this is part of a fix, it makes only the minimal change to swap the
functions to the blocking equivalents. There's no need to risk
reworking the buffer allocation logic that is now partially redundant.

The async writes are a 12-year-old workaround for inefficiency of
synchronous writes in the SPI subsystem. The SPI subsystem has since
been changed to avoid the overheads, so this workaround should not be
necessary.

The cs35l56 driver needs to use spi_bus_lock() prevent bus activity
while it is soft-resetting the cs35l56. But spi_bus_lock() is
incompatible with spi_async() calls, which will fail with -EBUSY.

Fixes: 8a731fd37f8b ("ASoC: cs35l56: Move utility functions to shared file")
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20250225131843.113752-2-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/firmware/cirrus/cs_dsp.c