ASoC: intel/sdw_utils: Add volume limit to cs35l56 speakers
authorStefan Binding <sbinding@opensource.cirrus.com>
Wed, 30 Apr 2025 10:31:20 +0000 (11:31 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 30 Apr 2025 23:22:06 +0000 (08:22 +0900)
commitd5463e531c128ff1b141fdba2e13345cd50028a4
treec9f1b939320f148bbe0f55029e80683c2bd328f4
parent02b44a2b2bdcee03cbb92484d31e9ca1b91b2a38
ASoC: intel/sdw_utils: Add volume limit to cs35l56 speakers

The volume control for cs35l56 speakers has a maximum gain of +12 dB.
However, for many use cases, this can cause distorted audio, depending
various factors, such as other signal-processing elements in the chain,
for example if the audio passes through a gain control before reaching
the amp or the signal path has been tuned for a particular maximum
gain in the amp.

In the case of systems which use the soc_sdw_* driver, audio will
likely be distorted in all cases above 0 dB, therefore add a volume
limit of 400, which is 0 dB maximum volume inside this driver.

The volume limit should be applied to both soundwire and soundwire
bridge configurations.

Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com>
Link: https://patch.msgid.link/20250430103134.24579-3-sbinding@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/soc_sdw_utils.h
sound/soc/sdw_utils/soc_sdw_bridge_cs35l56.c
sound/soc/sdw_utils/soc_sdw_cs_amp.c