public inbox for linux-sound@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH for-6.10 0/2] ASoC: cs35l56: Set correct upper volume limit
@ 2024-07-22 10:25 Richard Fitzgerald
  2024-07-22 10:25 ` [PATCH for-6.10 1/2] ASoC: cs35l56: Use header defines for Speaker Volume control definition Richard Fitzgerald
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Richard Fitzgerald @ 2024-07-22 10:25 UTC (permalink / raw)
  To: stable; +Cc: linux-kernel, linux-sound, alsa-devel, patches

Patch series to limit the upper range of the CS35L56 volume control to
+12 dB.

These commits were not marked 'Fixes' because they were thought to be only
a cosmetic issue. The user could reduce the volume to a usable value.

But for some complex audio topologies with SOF Audio DSP + CS42L43 +
multiple CS35L56 it has turned out to be not obvious to the user what the
problem actually is and what to do to fix it. As support for these
topologies went into 6.10 we would like this series to be applied to 6.10.

Richard Fitzgerald (2):
  ASoC: cs35l56: Use header defines for Speaker Volume control
    definition
  ASoC: cs35l56: Limit Speaker Volume to +12dB maximum

 include/sound/cs35l56.h    | 2 +-
 sound/soc/codecs/cs35l56.c | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

-- 
2.39.2


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH for-6.10 1/2] ASoC: cs35l56: Use header defines for Speaker Volume control definition
  2024-07-22 10:25 [PATCH for-6.10 0/2] ASoC: cs35l56: Set correct upper volume limit Richard Fitzgerald
@ 2024-07-22 10:25 ` Richard Fitzgerald
  2024-07-22 10:26 ` [PATCH for-6.10 2/2] ASoC: cs35l56: Limit Speaker Volume to +12dB maximum Richard Fitzgerald
  2024-07-23 11:37 ` [PATCH for-6.10 0/2] ASoC: cs35l56: Set correct upper volume limit Greg KH
  2 siblings, 0 replies; 4+ messages in thread
From: Richard Fitzgerald @ 2024-07-22 10:25 UTC (permalink / raw)
  To: stable; +Cc: linux-kernel, linux-sound, alsa-devel, patches

[ Upstream commit c66995ae403073212f5ba60d2079003866c6e130 ]
Please apply to 6.10

The "Speaker Volume" control was being defined using four hardcoded magic
numbers. There are #defines in the cs35l56.h header for these numbers, so
change the code to use the defined constants.

Backport Note:
Identical to upstream commit. This was originally thought to be only a
cosmetic issue (the user can simply reduce the volume) but for some complex
audio topologies with SOF Audio DSP + CS42L43 + multiple CS35L56 it has
turned out to be not obvious to the user what the problem actually is and
what to do to fix it. As support for these topologies went into 6.10 we
would like this commit to be backported into 6.10.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20240703095517.208077-2-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/codecs/cs35l56.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/sound/soc/codecs/cs35l56.c b/sound/soc/codecs/cs35l56.c
index 758dfdf9d3ea..7f2f2f8c13fa 100644
--- a/sound/soc/codecs/cs35l56.c
+++ b/sound/soc/codecs/cs35l56.c
@@ -196,7 +196,11 @@ static const struct snd_kcontrol_new cs35l56_controls[] = {
 		       cs35l56_dspwait_get_volsw, cs35l56_dspwait_put_volsw),
 	SOC_SINGLE_S_EXT_TLV("Speaker Volume",
 			     CS35L56_MAIN_RENDER_USER_VOLUME,
-			     6, -400, 400, 9, 0,
+			     CS35L56_MAIN_RENDER_USER_VOLUME_SHIFT,
+			     CS35L56_MAIN_RENDER_USER_VOLUME_MIN,
+			     CS35L56_MAIN_RENDER_USER_VOLUME_MAX,
+			     CS35L56_MAIN_RENDER_USER_VOLUME_SIGNBIT,
+			     0,
 			     cs35l56_dspwait_get_volsw,
 			     cs35l56_dspwait_put_volsw,
 			     vol_tlv),
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH for-6.10 2/2] ASoC: cs35l56: Limit Speaker Volume to +12dB maximum
  2024-07-22 10:25 [PATCH for-6.10 0/2] ASoC: cs35l56: Set correct upper volume limit Richard Fitzgerald
  2024-07-22 10:25 ` [PATCH for-6.10 1/2] ASoC: cs35l56: Use header defines for Speaker Volume control definition Richard Fitzgerald
@ 2024-07-22 10:26 ` Richard Fitzgerald
  2024-07-23 11:37 ` [PATCH for-6.10 0/2] ASoC: cs35l56: Set correct upper volume limit Greg KH
  2 siblings, 0 replies; 4+ messages in thread
From: Richard Fitzgerald @ 2024-07-22 10:26 UTC (permalink / raw)
  To: stable; +Cc: linux-kernel, linux-sound, alsa-devel, patches

[ Upstream commit 244389bd42870640c4b5ef672a360da329b579ed ]

Change CS35L56_MAIN_RENDER_USER_VOLUME_MAX to 48, to limit the maximum
value of the Speaker Volume control to +12dB. The minimum value is
unchanged so that the default 0dB has the same integer control value.

The original maximum of 400 (+100dB) was the largest value that can be
mathematically handled by the DSP. The actual maximum amplification is
+12dB.

Backport Note:
Identical to upstream commit. This was originally thought to be only a
cosmetic issue (the user can simply reduce the volume) but for some complex
audio topologies with SOF Audio DSP + CS42L43 + multiple CS35L56 it has 
turned out to be not obvious to the user what the problem actually is and
what to do to fix it. As support for these topologies went into 6.10 we
would like this commit to be backported into 6.10.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20240703095517.208077-3-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 include/sound/cs35l56.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/sound/cs35l56.h b/include/sound/cs35l56.h
index 1a3c6f66f620..dc627ebf01df 100644
--- a/include/sound/cs35l56.h
+++ b/include/sound/cs35l56.h
@@ -209,7 +209,7 @@
 
 /* CS35L56_MAIN_RENDER_USER_VOLUME */
 #define CS35L56_MAIN_RENDER_USER_VOLUME_MIN		-400
-#define CS35L56_MAIN_RENDER_USER_VOLUME_MAX		400
+#define CS35L56_MAIN_RENDER_USER_VOLUME_MAX		48
 #define CS35L56_MAIN_RENDER_USER_VOLUME_MASK		0x0000FFC0
 #define CS35L56_MAIN_RENDER_USER_VOLUME_SHIFT		6
 #define CS35L56_MAIN_RENDER_USER_VOLUME_SIGNBIT		9
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH for-6.10 0/2] ASoC: cs35l56: Set correct upper volume limit
  2024-07-22 10:25 [PATCH for-6.10 0/2] ASoC: cs35l56: Set correct upper volume limit Richard Fitzgerald
  2024-07-22 10:25 ` [PATCH for-6.10 1/2] ASoC: cs35l56: Use header defines for Speaker Volume control definition Richard Fitzgerald
  2024-07-22 10:26 ` [PATCH for-6.10 2/2] ASoC: cs35l56: Limit Speaker Volume to +12dB maximum Richard Fitzgerald
@ 2024-07-23 11:37 ` Greg KH
  2 siblings, 0 replies; 4+ messages in thread
From: Greg KH @ 2024-07-23 11:37 UTC (permalink / raw)
  To: Richard Fitzgerald; +Cc: stable, linux-kernel, linux-sound, alsa-devel, patches

On Mon, Jul 22, 2024 at 11:25:58AM +0100, Richard Fitzgerald wrote:
> Patch series to limit the upper range of the CS35L56 volume control to
> +12 dB.
> 
> These commits were not marked 'Fixes' because they were thought to be only
> a cosmetic issue. The user could reduce the volume to a usable value.
> 
> But for some complex audio topologies with SOF Audio DSP + CS42L43 +
> multiple CS35L56 it has turned out to be not obvious to the user what the
> problem actually is and what to do to fix it. As support for these
> topologies went into 6.10 we would like this series to be applied to 6.10.

Now queued up, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-07-23 11:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-22 10:25 [PATCH for-6.10 0/2] ASoC: cs35l56: Set correct upper volume limit Richard Fitzgerald
2024-07-22 10:25 ` [PATCH for-6.10 1/2] ASoC: cs35l56: Use header defines for Speaker Volume control definition Richard Fitzgerald
2024-07-22 10:26 ` [PATCH for-6.10 2/2] ASoC: cs35l56: Limit Speaker Volume to +12dB maximum Richard Fitzgerald
2024-07-23 11:37 ` [PATCH for-6.10 0/2] ASoC: cs35l56: Set correct upper volume limit Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox