linux-stable/sound/soc
Johan Hovold 46188db080
ASoC: codecs: lpass-wsa-macro: fix compander volume hack
The LPASS WSA macro codec driver is updating the digital gain settings
behind the back of user space on DAPM events if companding has been
enabled.

As compander control is exported to user space, this can result in the
digital gain setting being incremented (or decremented) every time the
sound server is started and the codec suspended depending on what the
UCM configuration looks like.

Soon enough playback will become distorted (or too quiet).

This is specifically a problem on the Lenovo ThinkPad X13s as this
bypasses the limit for the digital gain setting that has been set by the
machine driver.

Fix this by simply dropping the compander gain offset hack. If someone
cares about modelling the impact of the compander setting this can
possibly be done by exporting it as a volume control later.

Note that the volume registers still need to be written after enabling
clocks in order for any prior updates to take effect.

Fixes: 2c4066e5d4 ("ASoC: codecs: lpass-wsa-macro: add dapm widgets and route")
Cc: stable@vger.kernel.org      # 5.11
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://msgid.link/r/20240119112420.7446-4-johan+linaro@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-01-22 15:29:02 +00:00
..
adi
amd ASoC: Updates for v6.8 2024-01-08 08:18:02 +01:00
apple
atmel
au1x
bcm
cirrus ASoC: cirrus: edb93xx: Drop legacy include 2023-12-01 16:59:22 +00:00
codecs ASoC: codecs: lpass-wsa-macro: fix compander volume hack 2024-01-22 15:29:02 +00:00
dwc Linux 6.6-rc7 2023-10-23 19:38:22 +01:00
fsl sound updates for 6.8-rc1 2024-01-12 11:55:28 -08:00
generic ASoC: audio-graph-card2: fix index check on graph_parse_node_multi_nm() 2024-01-12 14:13:53 +00:00
google
hisilicon ASoC: hisilicon: Drop GPIO include 2023-12-18 14:03:29 +00:00
img
intel sound fixes for 6.8-rc1 2024-01-19 12:30:29 -08:00
jz4740
kirkwood
loongson
mediatek ASoC: Fixes for v6.8 2024-01-16 17:37:17 +01:00
meson ASoC: meson: g12a-tohdmitx: Fix event generation for S/PDIF mux 2024-01-03 18:37:02 +00:00
mxs
pxa ASoC: pxa: sspa: Don't select SND_ARM 2023-12-29 17:41:15 +00:00
qcom ASoC: Updates for v6.8 2024-01-08 08:18:02 +01:00
rockchip i2c: make i2c_bus_type const 2024-01-18 21:10:43 +01:00
samsung ASoC: samsung: odroid: don't need DUMMY Platform 2023-12-19 13:23:43 +00:00
sh ASoC: sh: convert not to use dma_request_slave_channel() 2023-11-27 13:44:06 +00:00
sof ASoC: Fixes for v6.8 2024-01-16 17:37:17 +01:00
spear
sprd ASoC: sprd: Simplify memory allocation in sprd_platform_compr_dma_config() 2023-12-19 14:02:50 +00:00
starfive ASoC: starfive/jh7110-pwmdac: Convert to platform remove callback returning void 2023-10-23 13:29:44 +01:00
sti ASoC: sti-uniperf: Use default pcm_config instead 2023-11-13 01:26:07 +00:00
stm
sunxi
tegra ASoC: tegra: tegra20_ac97: Convert to use GPIO descriptors 2023-12-18 14:03:32 +00:00
ti ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings 2023-10-30 13:30:20 +00:00
uniphier ASoC: uniphier: Make uniphier_aio_remove() return void 2023-10-23 13:29:48 +01:00
ux500
xilinx
xtensa
Kconfig
Makefile
soc-ac97.c
soc-acpi.c
soc-card.c
soc-component.c
soc-compress.c
soc-core.c ASoC: soc.h: don't create dummy Component via COMP_DUMMY() 2023-12-19 13:23:46 +00:00
soc-dai.c ASoC: Merge up workaround for CODECs that play noise on stopped stream 2023-10-27 22:33:15 +01:00
soc-dapm.c ASoC: makes CPU/Codec channel connection map more generic 2023-11-27 13:44:00 +00:00
soc-devres.c
soc-generic-dmaengine-pcm.c
soc-jack.c
soc-link.c
soc-ops.c ASoC: ops: add correct range check for limiting volume 2023-12-04 16:20:25 +00:00
soc-pcm.c ASoC: Updates for v6.8 2024-01-08 08:18:02 +01:00
soc-topology-test.c ASoC: topology: Replace fake root_device with kunit_device in tests 2023-12-18 13:28:08 -07:00
soc-topology.c
soc-utils-test.c
soc-utils.c