lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTiku+Cu0iNagjz00wn7d8A6YkioBGWYmO=ObdPZi@mail.gmail.com>
Date:	Mon, 10 Jan 2011 23:10:54 +0530
From:	Nirbheek Chauhan <nirbheek.chauhan@...il.com>
To:	Takashi Iwai <tiwai@...e.de>
Cc:	Jaroslav Kysela <perex@...ex.cz>,
	Kailang Yang <kailang@...ltek.com>,
	linux-kernel@...r.kernel.org, alsa-devel@...a-project.org,
	arun@...osted.net
Subject: Re: [bisected] snd_hda_intel, 2.6.37: automuting on headphone connect
 broken; headphone connecter no longer shown in userspace

On Mon, Jan 10, 2011 at 7:24 PM, Takashi Iwai <tiwai@...e.de> wrote:
> At Wed, 5 Jan 2011 13:07:41 +0530,
> Nirbheek Chauhan wrote:
>> Upon upgrading to 2.6.37,
>> auto-muting-laptop-speakers-on-headphone-connect stopped working, and
>> the headphone connector completely disappeared from alsamixer as well
>> as the pulseaudio volume control panel. The headphone jack was still
>> transmitting sound, though.
>>
>> I bisected the problem, with 'good' being v2.6.36, and found the
>> commit below as the first bad commit. Reverting it on v2.6.37 fixes
>> the problem. I also tried the latest alsa-kernel master git tree,
>> which had the same problem.
>>
>> alsa-info when 'good':
>>
>> http://www.alsa-project.org/db/?f=a0b5c95f764a0b01746be46f989685996e1f9210
>>
>> alsa-info when 'bad':
>>
>> http://www.alsa-project.org/db/?f=30f30ca5461f03b98ab6c7c611cf24ea4526f537
>>
>> Note: both were taken without X running, before pulseaudio came up.
>>
>> ================
>> 03642c9a444079aa13f0864383a8f9ca04bfd198 is the first bad commit
>> commit 03642c9a444079aa13f0864383a8f9ca04bfd198
>> Author: Takashi Iwai <tiwai@...e.de>
>> Date:   Wed Sep 8 15:28:19 2010 +0200
>>
>>     ALSA: hda - Clear left-over hp_pins in snd_hda_parse_pin_def_config()
>>
[snip]
>
> It seems that the driver worked casually in the earlier versions :)
> Does the patch below fix your problem?
>
> Note that the "Headphone" control will still not appear even with this
> patch, but these two outputs are controlled by "Front" and "Surround"
> controls.  The lack of "Headphone" is no regression but simply it
> shouldn't have been there.
>

I tested it, and the patch below does exactly what you describe it's
supposed to do. Auto-muting and volume control is the way it used to
be -- somewhat weird, but not a regression from 2.6.36. As a humble
reporter, I agree that it's perfect for -stable.

Thank you!

> I'll work on 2.6.38 tree for better handling of multi headphone
> cases.
>

Results of the second patch are in a reply to the other email.

[snip]
> ===
> From b2d0576055bd1cafcd91a23cf85064815f1396cd Mon Sep 17 00:00:00 2001
> From: Takashi Iwai <tiwai@...e.de>
> Date: Mon, 10 Jan 2011 14:47:35 +0100
> Subject: [PATCH] ALSA: hda - Fix multi-headphone handling for Realtek codecs
>
> When multiple headphone pins are defined without line-out pins, the
> driver takes them as primary outputs.  But it forgot to set line_out_type
> to HP by assuming there is some rest of HP pins.  This results in some
> mis-handling of these pins for Realtek codec parser.  It takes as if
> these are pure line-out jacks.
>
> Signed-off-by: Takashi Iwai <tiwai@...e.de>
> Cc: <stable@...nel.org>
> ---
>  sound/pci/hda/hda_codec.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
> index 98b6d02..05e5ec8 100644
> --- a/sound/pci/hda/hda_codec.c
> +++ b/sound/pci/hda/hda_codec.c
> @@ -4571,6 +4571,9 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec,
>                }
>                memset(cfg->hp_pins + cfg->hp_outs, 0,
>                       sizeof(hda_nid_t) * (AUTO_CFG_MAX_OUTS - cfg->hp_outs));
> +               if (!cfg->hp_outs)
> +                       cfg->line_out_type = AUTO_PIN_HP_OUT;
> +
>        }
>
>        /* sort by sequence */
> --
> 1.7.3.4
>
>



-- 
~Nirbheek Chauhan

Gentoo GNOME+Mozilla Team
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ