This series is being resurrected after several years, and it's quite different from before, so I'm restarting the version number at 1 :)
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.
I haven't tested on my X220 (which has a mute light in addition to a mute button), since that laptop's SATA controller died last week. It should work, though, and if someone else could test this on a ThinkPad with a mute light, that would be great.
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 | 107 +++++++++++++++++++++++++++++++---- 2 files changed, 97 insertions(+), 64 deletions(-)