[PATCH alsa-lib 5/5] mixer: simple - Add exceptions for some Playback Switches with a " Channel Switch" suffix
Hans de Goede
hdegoede at redhat.com
Mon May 3 22:52:31 CEST 2021
The following ASoC codec drivers:
sound/soc/codecs/rt5640.c
sound/soc/codecs/rt5645.c
Use the following troublesome playback-switch-control names:
"Headphone Channel Switch"
"HP Channel Switch"
"Speaker Channel Switch"
There are 2 problems with these names:
1. They are the mute controls for the matching:
"Headphone Playback Volume"
"HP Playback Volume"
"Speaker Playback Volume"
controls, to be properly paired, which is necessary for HW volume-control
support, the simple mixer code needs to recognize that the base-name for
these is e.g. "Headphone" not "Headphone Channel".
2. They are playback-switches, yet they get recognized as global-switches.
Add these to the exceptions table so that they get the proper basename
and type set.
Note we can NOT fix this by adding " Channel Switch" as a suffix to the
suffixes table, because the line-out output on these codecs has the
following controls:
"OUT Playback Switch"
"OUT Channel Switch"
"OUT Playback Volume"
Where the 2 switches describe mutes in 2 different places in the graph.
So if we were to add a " Channel Switch" suffix map to CTL_PLAYBACK_SWITCH
then we would get 2 CTL_PLAYBACK_SWITCH controls for the "OUT" mixer
element, which is not allowed.
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
---
src/mixer/simple_none.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c
index de81966f..d5025f68 100644
--- a/src/mixer/simple_none.c
+++ b/src/mixer/simple_none.c
@@ -933,6 +933,9 @@ static const struct excep {
{"3D Control - Depth", 18, CTL_PLAYBACK_VOLUME},
{"3D Control Sigmatel - Depth", 27, CTL_PLAYBACK_VOLUME},
{"3D Control Sigmatel - Rear Depth", 32, CTL_PLAYBACK_VOLUME},
+ {"Headphone Channel Switch", 9, CTL_PLAYBACK_SWITCH},
+ {"HP Channel Switch", 2, CTL_PLAYBACK_SWITCH},
+ {"Speaker Channel Switch", 7, CTL_PLAYBACK_SWITCH},
/* Capture Volume/Switch controls without a " Capture ..." suffix */
{"ADC Boost Gain", 14, CTL_CAPTURE_VOLUME},
{"IN1 Boost", 9, CTL_CAPTURE_VOLUME},
--
2.31.1
More information about the Alsa-devel
mailing list