[alsa-devel] Exposing the ThinkPad HW mute switch to ALSA?

Takashi Iwai tiwai at suse.de
Mon Oct 6 15:04:56 CEST 2014


At Tue, 23 Sep 2014 19:16:52 -0700,
Andy Lutomirski wrote:
> 
> ThinkPads have an extra mute switch that's controlled by the embedded
> controller.  There are some hardware buttons associated with it.
> 
> We (thinkpad-acpi) can be notified about state changes in the mute
> switch, we can see presses of the hardware buttons and program them to
> send KEY_MUTE or not as appropriate, and we can (optionally) change
> the HW mute state.
> 
> However, I have no clue how to correctly expose the mute switch
> through ALSA so that userspace will know what it controls.  It
> currently shows up as its own sound card, which is ridiculous.
> 
> Can anyone give me any hints as to how to expose this bonus audio
> control in a sensible manner?  I know essentially nothing about ALSA.
> 
> (Some older ThinkPads also have a hardware volume control with similar
> behavior.)

It's a bit difficult issue, since this needs the weak module
dependency.  And even worse, different sound drivers might be used for
a single thinkpad_acpi.  So, from the programming POV, the individual
sound card instance is the easiest approach.

Though, some HD-audio codec drivers already have a weak binding of
thinkpad_acpi stuff for Mic-mute switch.  I guess we can move the
handling of the master mute switch to the sound driver as well.

If doing so, each relevant sound driver needs to implement it.
IIRC, snd-intel8x0 is used on old Thinkpads.  Any others?


Takashi


More information about the Alsa-devel mailing list