Skip to content

Disable the ThinkPad HW mute/level control when possible

Andy Lutomirski alsa-devel platform-driver-x86 3 versions – Applied

Status from this message: Queued to for-next. Pending anything unforseen, I'll attempt to get this into

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest2 patches 9 repliesApplied
  2. v22 patches 0 repliesSuperseded
  3. v12 patches 8 repliesSuperseded

Changes in v3 from the cover letter

- Don't try to change the mute mode on IBM ThinkPads.
- Further minor cleanups.
- Try to restore the mode on module unload.

Patches in v3 Applied

#Subject and filesSizeRepliesApplied
1/2thinkpad-acpi: Try to use full software mute controldrivers/platform/x86/thinkpad_acpi.c+106 -104 replies
2/2acpi: Remove _OSI(Linux) for ThinkPadsdrivers/acpi/blacklist.c+0 -541 reply

Reviews trailers per patch

All 2 patches have a Reviewed-by or Acked-by.

PatchHenrique de Moraes Holschuh
1/2A-b
2/2A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v3 thread

Cover letter [PATCH v3 0/2] Disable the ThinkPad HW mute/level control when possible

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(-)
Signature · 1 line
1.9.3