All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] Disable the ThinkPad HW mute/level control when possible
@ 2014-10-18  0:04 Andy Lutomirski
  2014-10-18  0:04 ` [PATCH v3 1/2] thinkpad-acpi: Try to use full software mute control Andy Lutomirski
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Andy Lutomirski @ 2014-10-18  0:04 UTC (permalink / raw)
  To: Henrique de Moraes Holschuh, Matthew Garrett, ibm-acpi-devel
  Cc: Len Brown, David Henningsson, Takashi Iwai, Grant Diffey,
	ALSA development, platform-driver-x86, Andy Lutomirski

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(-)

-- 
1.9.3

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2014-12-11 10:14 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-18  0:04 [PATCH v3 0/2] Disable the ThinkPad HW mute/level control when possible Andy Lutomirski
2014-10-18  0:04 ` [PATCH v3 1/2] thinkpad-acpi: Try to use full software mute control Andy Lutomirski
2014-10-31 23:07   ` Henrique de Moraes Holschuh
2014-12-08 21:44     ` Andy Lutomirski
2014-12-09 19:53       ` Henrique de Moraes Holschuh
2014-12-04 11:50         ` Darren Hart
2014-10-18  0:04 ` [PATCH v3 2/2] acpi: Remove _OSI(Linux) for ThinkPads Andy Lutomirski
2014-10-31 23:07   ` Henrique de Moraes Holschuh
2014-12-04 11:55 ` [PATCH v3 0/2] Disable the ThinkPad HW mute/level control when possible Darren Hart
2014-12-09 22:47   ` Andy Lutomirski
2014-12-11  4:58     ` Darren Hart
2014-12-11 10:14       ` Henrique de Moraes Holschuh

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.