* [PATCH 1/4] ASoC: meson: g12a-toacodec: Validate written enum values
2024-01-03 18:34 [PATCH 0/4] ASoC: meson: Fix issues with LibreTech Saphire Mark Brown
@ 2024-01-03 18:34 ` Mark Brown
2024-01-03 18:34 ` [PATCH 2/4] ASoC: meson: g12a-tohdmitx: " Mark Brown
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2024-01-03 18:34 UTC (permalink / raw)
To: Jerome Brunet, Liam Girdwood, Neil Armstrong, Kevin Hilman,
Martin Blumenstingl
Cc: alsa-devel, linux-sound, linux-arm-kernel, linux-amlogic,
linux-kernel, Mark Brown
When writing to an enum we need to verify that the value written is valid
for the enumeration, the helper function snd_soc_item_enum_to_val() doesn't
do it since it needs to return an unsigned (and in any case we'd need to
check the return value).
Fixes: af2618a2eee8 ("ASoC: meson: g12a: add internal DAC glue driver")
Signed-off-by: Mark Brown <broonie@kernel.org>
---
sound/soc/meson/g12a-toacodec.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sound/soc/meson/g12a-toacodec.c b/sound/soc/meson/g12a-toacodec.c
index 6c4503766fdc..dd7f07de2685 100644
--- a/sound/soc/meson/g12a-toacodec.c
+++ b/sound/soc/meson/g12a-toacodec.c
@@ -71,6 +71,9 @@ static int g12a_toacodec_mux_put_enum(struct snd_kcontrol *kcontrol,
struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
unsigned int mux, reg;
+ if (ucontrol->value.enumerated.item[0] >= e->items)
+ return -EINVAL;
+
mux = snd_soc_enum_item_to_val(e, ucontrol->value.enumerated.item[0]);
regmap_field_read(priv->field_dat_sel, ®);
--
2.39.2
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 2/4] ASoC: meson: g12a-tohdmitx: Validate written enum values
2024-01-03 18:34 [PATCH 0/4] ASoC: meson: Fix issues with LibreTech Saphire Mark Brown
2024-01-03 18:34 ` [PATCH 1/4] ASoC: meson: g12a-toacodec: Validate written enum values Mark Brown
@ 2024-01-03 18:34 ` Mark Brown
2024-01-03 18:34 ` [PATCH 3/4] ASoC: meson: g12a-toacodec: Fix event generation Mark Brown
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2024-01-03 18:34 UTC (permalink / raw)
To: Jerome Brunet, Liam Girdwood, Neil Armstrong, Kevin Hilman,
Martin Blumenstingl
Cc: alsa-devel, linux-sound, linux-arm-kernel, linux-amlogic,
linux-kernel, Mark Brown
When writing to an enum we need to verify that the value written is valid
for the enumeration, the helper function snd_soc_item_enum_to_val() doesn't
do it since it needs to return an unsigned (and in any case we'd need to
check the return value).
Fixes: c8609f3870f7 ("ASoC: meson: add g12a tohdmitx control")
Signed-off-by: Mark Brown <broonie@kernel.org>
---
sound/soc/meson/g12a-tohdmitx.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/sound/soc/meson/g12a-tohdmitx.c b/sound/soc/meson/g12a-tohdmitx.c
index f7ef9aa1eed8..51b7703e1834 100644
--- a/sound/soc/meson/g12a-tohdmitx.c
+++ b/sound/soc/meson/g12a-tohdmitx.c
@@ -45,6 +45,9 @@ static int g12a_tohdmitx_i2s_mux_put_enum(struct snd_kcontrol *kcontrol,
struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
unsigned int mux, changed;
+ if (ucontrol->value.enumerated.item[0] >= e->items)
+ return -EINVAL;
+
mux = snd_soc_enum_item_to_val(e, ucontrol->value.enumerated.item[0]);
changed = snd_soc_component_test_bits(component, e->reg,
CTRL0_I2S_DAT_SEL,
@@ -93,6 +96,9 @@ static int g12a_tohdmitx_spdif_mux_put_enum(struct snd_kcontrol *kcontrol,
struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
unsigned int mux, changed;
+ if (ucontrol->value.enumerated.item[0] >= e->items)
+ return -EINVAL;
+
mux = snd_soc_enum_item_to_val(e, ucontrol->value.enumerated.item[0]);
changed = snd_soc_component_test_bits(component, TOHDMITX_CTRL0,
CTRL0_SPDIF_SEL,
--
2.39.2
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 3/4] ASoC: meson: g12a-toacodec: Fix event generation
2024-01-03 18:34 [PATCH 0/4] ASoC: meson: Fix issues with LibreTech Saphire Mark Brown
2024-01-03 18:34 ` [PATCH 1/4] ASoC: meson: g12a-toacodec: Validate written enum values Mark Brown
2024-01-03 18:34 ` [PATCH 2/4] ASoC: meson: g12a-tohdmitx: " Mark Brown
@ 2024-01-03 18:34 ` Mark Brown
2024-01-03 18:34 ` [PATCH 4/4] ASoC: meson: g12a-tohdmitx: Fix event generation for S/PDIF mux Mark Brown
2024-01-03 20:24 ` [PATCH 0/4] ASoC: meson: Fix issues with LibreTech Saphire Mark Brown
4 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2024-01-03 18:34 UTC (permalink / raw)
To: Jerome Brunet, Liam Girdwood, Neil Armstrong, Kevin Hilman,
Martin Blumenstingl
Cc: alsa-devel, linux-sound, linux-arm-kernel, linux-amlogic,
linux-kernel, Mark Brown
When a control changes value the return value from _put() should be 1 so
we get events generated to userspace notifying applications of the change.
We are checking if there has been a change and exiting early if not but we
are not providing the correct return value in the latter case, fix this.
Fixes: af2618a2eee8 ("ASoC: meson: g12a: add internal DAC glue driver")
Signed-off-by: Mark Brown <broonie@kernel.org>
---
sound/soc/meson/g12a-toacodec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/meson/g12a-toacodec.c b/sound/soc/meson/g12a-toacodec.c
index dd7f07de2685..531bb8707a3e 100644
--- a/sound/soc/meson/g12a-toacodec.c
+++ b/sound/soc/meson/g12a-toacodec.c
@@ -104,7 +104,7 @@ static int g12a_toacodec_mux_put_enum(struct snd_kcontrol *kcontrol,
snd_soc_dapm_mux_update_power(dapm, kcontrol, mux, e, NULL);
- return 0;
+ return 1;
}
static SOC_ENUM_SINGLE_DECL(g12a_toacodec_mux_enum, TOACODEC_CTRL0,
--
2.39.2
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 4/4] ASoC: meson: g12a-tohdmitx: Fix event generation for S/PDIF mux
2024-01-03 18:34 [PATCH 0/4] ASoC: meson: Fix issues with LibreTech Saphire Mark Brown
` (2 preceding siblings ...)
2024-01-03 18:34 ` [PATCH 3/4] ASoC: meson: g12a-toacodec: Fix event generation Mark Brown
@ 2024-01-03 18:34 ` Mark Brown
2024-01-03 20:24 ` [PATCH 0/4] ASoC: meson: Fix issues with LibreTech Saphire Mark Brown
4 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2024-01-03 18:34 UTC (permalink / raw)
To: Jerome Brunet, Liam Girdwood, Neil Armstrong, Kevin Hilman,
Martin Blumenstingl
Cc: alsa-devel, linux-sound, linux-arm-kernel, linux-amlogic,
linux-kernel, Mark Brown
When a control changes value the return value from _put() should be 1 so
we get events generated to userspace notifying applications of the change.
While the I2S mux gets this right the S/PDIF mux does not, fix the return
value.
Fixes: c8609f3870f7 ("ASoC: meson: add g12a tohdmitx control")
Signed-off-by: Mark Brown <broonie@kernel.org>
---
sound/soc/meson/g12a-tohdmitx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/meson/g12a-tohdmitx.c b/sound/soc/meson/g12a-tohdmitx.c
index 51b7703e1834..b92434125fac 100644
--- a/sound/soc/meson/g12a-tohdmitx.c
+++ b/sound/soc/meson/g12a-tohdmitx.c
@@ -118,7 +118,7 @@ static int g12a_tohdmitx_spdif_mux_put_enum(struct snd_kcontrol *kcontrol,
snd_soc_dapm_mux_update_power(dapm, kcontrol, mux, e, NULL);
- return 0;
+ return 1;
}
static SOC_ENUM_SINGLE_DECL(g12a_tohdmitx_spdif_mux_enum, TOHDMITX_CTRL0,
--
2.39.2
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH 0/4] ASoC: meson: Fix issues with LibreTech Saphire
2024-01-03 18:34 [PATCH 0/4] ASoC: meson: Fix issues with LibreTech Saphire Mark Brown
` (3 preceding siblings ...)
2024-01-03 18:34 ` [PATCH 4/4] ASoC: meson: g12a-tohdmitx: Fix event generation for S/PDIF mux Mark Brown
@ 2024-01-03 20:24 ` Mark Brown
4 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2024-01-03 20:24 UTC (permalink / raw)
To: Jerome Brunet, Liam Girdwood, Neil Armstrong, Kevin Hilman,
Martin Blumenstingl, Mark Brown
Cc: alsa-devel, linux-sound, linux-arm-kernel, linux-amlogic,
linux-kernel
On Wed, 03 Jan 2024 18:34:00 +0000, Mark Brown wrote:
> This fixes a few issues I identified when integrating a LibreTech
> Saphire (based on S905D3) into my CI.
>
>
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/4] ASoC: meson: g12a-toacodec: Validate written enum values
commit: 3150b70e944ead909260285dfb5707d0bedcf87b
[2/4] ASoC: meson: g12a-tohdmitx: Validate written enum values
commit: 1e001206804be3f3d21f4a1cf16e5d059d75643f
[3/4] ASoC: meson: g12a-toacodec: Fix event generation
commit: 172c88244b5f2d3375403ebb504d407be0fded59
[4/4] ASoC: meson: g12a-tohdmitx: Fix event generation for S/PDIF mux
commit: b036d8ef3120b996751495ce25994eea58032a98
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 6+ messages in thread