--- /dev/null
+From 244389bd42870640c4b5ef672a360da329b579ed Mon Sep 17 00:00:00 2001
+From: Richard Fitzgerald <rf@opensource.cirrus.com>
+Date: Wed, 3 Jul 2024 10:55:17 +0100
+Subject: ASoC: cs35l56: Limit Speaker Volume to +12dB maximum
+
+From: Richard Fitzgerald <rf@opensource.cirrus.com>
+
+commit 244389bd42870640c4b5ef672a360da329b579ed upstream.
+
+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.
+
+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>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ include/sound/cs35l56.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- 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
--- /dev/null
+From c66995ae403073212f5ba60d2079003866c6e130 Mon Sep 17 00:00:00 2001
+From: Richard Fitzgerald <rf@opensource.cirrus.com>
+Date: Wed, 3 Jul 2024 10:55:16 +0100
+Subject: ASoC: cs35l56: Use header defines for Speaker Volume control definition
+
+From: Richard Fitzgerald <rf@opensource.cirrus.com>
+
+commit c66995ae403073212f5ba60d2079003866c6e130 upstream.
+
+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.
+
+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>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/soc/codecs/cs35l56.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/sound/soc/codecs/cs35l56.c
++++ b/sound/soc/codecs/cs35l56.c
+@@ -196,7 +196,11 @@ static const struct snd_kcontrol_new cs3
+ 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),
cifs-fix-server-re-repick-on-subrequest-retry.patch
cifs-fix-setting-of-zero_point-after-dio-write.patch
tpm-use-auth-only-after-null-check-in-tpm_buf_check_hmac_response.patch
+asoc-cs35l56-use-header-defines-for-speaker-volume-control-definition.patch
+asoc-cs35l56-limit-speaker-volume-to-12db-maximum.patch