[alsa-devel] [PATCH v3 0/2] Disable the ThinkPad HW mute/level control when possible
Darren Hart
dvhart at infradead.org
Thu Dec 4 12:55:15 CET 2014
On Fri, Oct 17, 2014 at 05:04:28PM -0700, Andy Lutomirski wrote:
> This series is being resurrected after several years, and it's quite
> different from before, so I'm restarting the version numbers :)
>
> ThinkPad volume and mute controls are a mess. For whatever reason,
> ThinkPads have mute buttons that send KEY_MUTE *and* control an
> invisible-to-ALSA mute switch. Some of them have volume controls that
> interact with this switch as well.
>
> This is a perennial source of problems. On most ThinkPads, if you press
> mute and then unmute using GUI controls, you have no sound, because
> userspace and ALSA state gets out of sync with the hardware switch.
> There's a separate "sound card" that exposes the hardware switch, but
> userspace code generally doesn't understand that.
>
> There are already a few _OSI(Linux) overrides to turn all the hardware
> buttons into regular buttons. Rather than quirking ACPI everywhere,
> just teach thinkpad-acpi to program the buttons for full software
> control and to disable hardware controls. That allows us to remove the
> ACPI quirks and have normal mute controls. This approach should be
> much simpler than adding even more kludgey ALSA integration for
> questionable gain.
>
> Tested on an X200s (with latching mute by default) and an X220 (with
> a mute light and toggle mute by default). Everything works as expected.
>
> Changes from v2:
> - Don't try to change the mute mode on IBM ThinkPads.
> - Further minor cleanups.
> - Try to restore the mode on module unload.
>
> Changes from v1:
> - Simplified the code a bit.
> - Improved suspend/hibernate behavior.
>
> Andy Lutomirski (2):
> thinkpad-acpi: Try to use full software mute control
> acpi: Remove _OSI(Linux) for ThinkPads
>
> drivers/acpi/blacklist.c | 54 ----------------
> drivers/platform/x86/thinkpad_acpi.c | 116 ++++++++++++++++++++++++++++++++---
> 2 files changed, 106 insertions(+), 64 deletions(-)
Andy, is this the latest version?
--
Darren Hart
Intel Open Source Technology Center
More information about the Alsa-devel
mailing list