From: Andy Lutomirski <luto@amacapital.net>
To: Henrique de Moraes Holschuh <hmh@hmh.eng.br>,
Matthew Garrett <mjg59@srcf.ucam.org>,
ibm-acpi-devel@lists.sourceforge.net
Cc: Len Brown <len.brown@intel.com>,
Jerone Young <jerone.young@canonical.com>,
David Henningsson <david.henningsson@canonical.com>,
Takashi Iwai <tiwai@suse.de>, Grant Diffey <gdiffey@gmail.com>,
ALSA development <alsa-devel@alsa-project.org>,
platform-driver-x86@vger.kernel.org,
Andy Lutomirski <luto@amacapital.net>
Subject: [PATCH v2 0/2] Disable the ThinkPad HW mute/level control when possible
Date: Thu, 16 Oct 2014 11:33:03 -0700 [thread overview]
Message-ID: <cover.1413484274.git.luto@amacapital.net> (raw)
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.
The only issue I know of with this version is that unloading and
reloading the module to change the software_mute setting doesn't
work quite right. I can fix that if it matters.
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 | 98 ++++++++++++++++++++++++++++++++----
2 files changed, 88 insertions(+), 64 deletions(-)
--
1.9.3
next reply other threads:[~2014-10-16 18:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-16 18:33 Andy Lutomirski [this message]
2014-10-16 18:33 ` [PATCH v2 1/2] thinkpad-acpi: Try to use full software mute control Andy Lutomirski
2014-10-16 18:33 ` [PATCH v2 2/2] acpi: Remove _OSI(Linux) for ThinkPads Andy Lutomirski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1413484274.git.luto@amacapital.net \
--to=luto@amacapital.net \
--cc=alsa-devel@alsa-project.org \
--cc=david.henningsson@canonical.com \
--cc=gdiffey@gmail.com \
--cc=hmh@hmh.eng.br \
--cc=ibm-acpi-devel@lists.sourceforge.net \
--cc=jerone.young@canonical.com \
--cc=len.brown@intel.com \
--cc=mjg59@srcf.ucam.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox