* Patch "ALSA: hda - Apply HP headphone fixups more generically" has been added to the 4.3-stable tree
@ 2016-01-25 21:49 gregkh
0 siblings, 0 replies; only message in thread
From: gregkh @ 2016-01-25 21:49 UTC (permalink / raw)
To: tiwai, gregkh; +Cc: stable, stable-commits
This is a note to let you know that I've just added the patch titled
ALSA: hda - Apply HP headphone fixups more generically
to the 4.3-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
alsa-hda-apply-hp-headphone-fixups-more-generically.patch
and it can be found in the queue-4.3 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.
>From 196543d54574f50e3fd04df4e3048181e006a9da Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Mon, 9 Nov 2015 14:46:35 +0100
Subject: ALSA: hda - Apply HP headphone fixups more generically
From: Takashi Iwai <tiwai@suse.de>
commit 196543d54574f50e3fd04df4e3048181e006a9da upstream.
It turned out that many HP laptops suffer from the same problem as
fixed in commit [c932b98c1e47: ALSA: hda - Apply pin fixup for HP
ProBook 6550b]. But, it's tiresome to list up all such PCI SSIDs, as
there are really lots of HP machines.
Instead, we do a bit more clever, try to check the supposedly dock and
built-in headphone pins, and apply the fixup when both seem valid.
This rule can be applied generically to all models using the same
quirk, so we'll fix all in a shot.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=107491
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
sound/pci/hda/patch_sigmatel.c | 45 ++++++++++++++++++++++++++---------------
1 file changed, 29 insertions(+), 16 deletions(-)
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -3110,6 +3110,29 @@ static void stac92hd71bxx_fixup_hp_hdx(s
spec->gpio_led = 0x08;
}
+static bool is_hp_output(struct hda_codec *codec, hda_nid_t pin)
+{
+ unsigned int pin_cfg = snd_hda_codec_get_pincfg(codec, pin);
+
+ /* count line-out, too, as BIOS sets often so */
+ return get_defcfg_connect(pin_cfg) != AC_JACK_PORT_NONE &&
+ (get_defcfg_device(pin_cfg) == AC_JACK_LINE_OUT ||
+ get_defcfg_device(pin_cfg) == AC_JACK_HP_OUT);
+}
+
+static void fixup_hp_headphone(struct hda_codec *codec, hda_nid_t pin)
+{
+ unsigned int pin_cfg = snd_hda_codec_get_pincfg(codec, pin);
+
+ /* It was changed in the BIOS to just satisfy MS DTM.
+ * Lets turn it back into slaved HP
+ */
+ pin_cfg = (pin_cfg & (~AC_DEFCFG_DEVICE)) |
+ (AC_JACK_HP_OUT << AC_DEFCFG_DEVICE_SHIFT);
+ pin_cfg = (pin_cfg & (~(AC_DEFCFG_DEF_ASSOC | AC_DEFCFG_SEQUENCE))) |
+ 0x1f;
+ snd_hda_codec_set_pincfg(codec, pin, pin_cfg);
+}
static void stac92hd71bxx_fixup_hp(struct hda_codec *codec,
const struct hda_fixup *fix, int action)
@@ -3119,22 +3142,12 @@ static void stac92hd71bxx_fixup_hp(struc
if (action != HDA_FIXUP_ACT_PRE_PROBE)
return;
- if (hp_blike_system(codec->core.subsystem_id)) {
- unsigned int pin_cfg = snd_hda_codec_get_pincfg(codec, 0x0f);
- if (get_defcfg_device(pin_cfg) == AC_JACK_LINE_OUT ||
- get_defcfg_device(pin_cfg) == AC_JACK_SPEAKER ||
- get_defcfg_device(pin_cfg) == AC_JACK_HP_OUT) {
- /* It was changed in the BIOS to just satisfy MS DTM.
- * Lets turn it back into slaved HP
- */
- pin_cfg = (pin_cfg & (~AC_DEFCFG_DEVICE))
- | (AC_JACK_HP_OUT <<
- AC_DEFCFG_DEVICE_SHIFT);
- pin_cfg = (pin_cfg & (~(AC_DEFCFG_DEF_ASSOC
- | AC_DEFCFG_SEQUENCE)))
- | 0x1f;
- snd_hda_codec_set_pincfg(codec, 0x0f, pin_cfg);
- }
+ /* when both output A and F are assigned, these are supposedly
+ * dock and built-in headphones; fix both pin configs
+ */
+ if (is_hp_output(codec, 0x0a) && is_hp_output(codec, 0x0f)) {
+ fixup_hp_headphone(codec, 0x0a);
+ fixup_hp_headphone(codec, 0x0f);
}
if (find_mute_led_cfg(codec, 1))
Patches currently in stable-queue which might be from tiwai@suse.de are
queue-4.3/alsa-hda-fix-headphone-mic-input-on-a-few-dell-alc293-machines.patch
queue-4.3/alsa-hda-add-fixup-for-acer-aspire-one-cloudbook-14.patch
queue-4.3/alsa-usb-audio-add-sample-rate-inquiry-quirk-for-audioquest-dragonfly.patch
queue-4.3/alsa-hda-realtek-dell-xps-one-alc3260-speaker-no-sound-after-resume-back.patch
queue-4.3/alsa-hda-apply-hp-headphone-fixups-more-generically.patch
queue-4.3/alsa-hda-set-codec-to-d3-at-reboot-shutdown-on-thinkpads.patch
queue-4.3/alsa-hda-realtek-fix-silent-headphone-output-on-macpro-4-1-v2.patch
queue-4.3/alsa-rme96-fix-unexpected-volume-reset-after-rate-changes.patch
queue-4.3/alsa-fireworks-bebob-oxfw-dice-enable-to-make-as-built-in.patch
queue-4.3/alsa-hda-set-skl-hda-controller-power-at-freeze-and-thaw.patch
queue-4.3/alsa-hda-add-inverted-dmic-for-packard-bell-dots.patch
queue-4.3/alsa-hda-add-intel-lewisburg-device-ids-audio.patch
queue-4.3/alsa-hda-add-keycode-map-for-alc-input-device.patch
queue-4.3/alsa-hda-add-a-fixup-for-thinkpad-x1-carbon-2nd.patch
queue-4.3/alsa-hda-skip-eld-notification-during-system-suspend.patch
queue-4.3/alsa-hda-add-mic-mute-hotkey-quirk-for-lenovo-thinkcentre-aio.patch
queue-4.3/alsa-hda-disable-64bit-address-for-creative-hda-controllers.patch
queue-4.3/alsa-hda-fix-noise-on-dell-latitude-e6440.patch
queue-4.3/alsa-hda-ca0132-quirk-for-alienware-17-2015.patch
queue-4.3/alsa-usb-audio-add-a-more-accurate-volume-quirk-for-audioquest-dragonfly.patch
queue-4.3/alsa-hda-fix-headphone-noise-after-dell-xps-13-resume-back-from-s3.patch
queue-4.3/alsa-hda-fix-noise-problems-on-thinkpad-t440s.patch
queue-4.3/alsa-hda-fix-lost-4k-bdl-boundary-workaround.patch
queue-4.3/alsa-hda-apply-pin-fixup-for-hp-probook-6550b.patch
queue-4.3/alsa-hda-fixing-speaker-noise-on-the-two-latest-thinkpad-models.patch
queue-4.3/alsa-hda-apply-click-noise-workaround-for-thinkpads-generically.patch
queue-4.3/alsa-hda-fix-noise-on-gigabyte-z170x-mobo.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2016-01-25 21:49 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-25 21:49 Patch "ALSA: hda - Apply HP headphone fixups more generically" has been added to the 4.3-stable tree gregkh
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.