[alsa-devel] PROBLEM: [Lenovo ThinkPad X61s] Speaker volume mutes itself in random intervals after upgrading from 3.11 to 3.15.

Alex Fedora alexander.fedora at gmail.com
Tue Jun 3 09:41:48 CEST 2014


On 06/02/2014 05:05 AM, Takashi Iwai wrote:
> At Mon, 02 Jun 2014 02:49:16 -0700,
> Alex Fedora wrote:
>> On 06/02/2014 02:15 AM, Takashi Iwai wrote:
>>> At Mon, 02 Jun 2014 01:55:16 -0700,
>>> Alex Fedora wrote:
>>>> On 06/02/2014 01:03 AM, Takashi Iwai wrote:
>>>>> At Sat, 31 May 2014 23:54:26 -0700,
>>>>> Alex Fedora wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Please see problem description below. I've captured alsa info output for
>>>>>> the latest kernel. Kernel just before the regression. And info from the
>>>>>> kernel with the offending commit. But I had to calculate diff from first
>>>>>> one to fit to 100K limit. If you want, I can send all 3 files as an
>>>>>> attachments. Also the latest version of the kernel was took from
>>>>>> http://kernel.ubuntu.com/~kernel-ppa/mainline/daily/current/linux-image-3.15.0-999-generic_3.15.0-999.201405310205_amd64.deb
>>>>>> .
>>>>>>
>>>>>> Thank you,
>>>>>> Alex
>>>>>>
>>>>>> [1.] One line summary of the problem: [Lenovo ThinkPad X61s] Speaker
>>>>>> volume mutes itself in random intervals after upgrade to latest kernel
>>>>>> [2.] Full description of the problem/report:
>>>>>>
>>>>>> Speaker mutes itself in random intervals. Headphones are working fine at
>>>>>> that moment. I can see what volume of the Speaker drops to 0% and then
>>>>>> back to 100% using alsamixer. It seems like Internal Mic Boost also
>>>>>> jumps from 100% to 0% and back. It is regression from
>>>>>> 5ccc618fee67f0f0b2122dd4b32a02fd2b6a1569 (ALSA: hda - Remove static
>>>>>> quirks for AD1884/1984 & variants). I've tested previous commit
>>>>>> aa95d61b43e0fcb0b2ce68e5efa37174fd9e5cd3 (ALSA: hda - Remove static
>>>>>> quirks for AD1882) and audio works as expected.
>>>>>>
>>>>>> New kernel shows two controls "Headphone Playback Volume" and "Speaker
>>>>>> Playback Volume". But old one shows single control "PCM Playback
>>>>>> Volume". "Speaker Playback Volume" is the one which gets muted randomly.
>>>>> Are you using PulseAudio?  If yes, does the problem happen without PA?
>>>>> This kind of random mute/unmute tends to be an issue of bogus
>>>>> headphone or mic jack detection.
>>>>>
>>>>>
>>>>> Takashi
>>>>>
>>>> Hi Takashi,
>>>>
>>>> Yes, I'm using  PulseAudio. I've removed it and issue gone away. It
>>>> returned back after reinstalling it. This is still driver bug, right?
>>> Yes.  So PA seems confused by some bogus information by the driver.
>>>
>>> Try to run "alsactl monitor 0", maybe better without PA at first.
>>> Do you see occasional events about the jack detection even if you
>>> don't plug/unplug?  And, try it also with PA.
>>>
>>>
>>> Takashi
>>>
>> Yes, I can see a lot of events even if I don't plug/unplug anything.
>> Even more if I'm using PA.
>>
>> No pulseaudio:
>>
>> card 0, #22 (0,0,0,Mic Jack,0) VALUE
>> card 0, #23 (0,0,0,Headphone Jack,0) VALUE
>> card 0, #23 (0,0,0,Headphone Jack,0) VALUE
> Thanks.  These are definitely bogus events.  No wonder that PA gets
> screwed up.
>
> Could you try the patch below?
>
>
> Takashi
>
> ---
> diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
> index 06275f8807a8..fa626648d746 100644
> --- a/sound/pci/hda/patch_analog.c
> +++ b/sound/pci/hda/patch_analog.c
> @@ -191,7 +191,6 @@ static int ad198x_parse_auto_config(struct hda_codec *codec, bool indep_hp)
>   	int err;
>   
>   	codec->spdif_status_reset = 1;
> -	codec->no_trigger_sense = 1;
>   	codec->no_sticky_stream = 1;
>   
>   	spec->gen.indep_hp = indep_hp;
> @@ -377,6 +376,8 @@ static int patch_ad1986a(struct hda_codec *codec)
>   	/* AD1986A has the inverted EAPD implementation */
>   	codec->inv_eapd = 1;
>   
> +	codec->no_trigger_sense = 1;
> +
>   	spec->gen.mixer_nid = 0x07;
>   	spec->gen.beep_nid = 0x19;
>   	set_beep_amp(spec, 0x18, 0, HDA_OUTPUT);
> @@ -500,6 +501,8 @@ static int patch_ad1983(struct hda_codec *codec)
>   		return err;
>   	spec = codec->spec;
>   
> +	codec->no_trigger_sense = 1;
> +
>   	spec->gen.mixer_nid = 0x0e;
>   	spec->gen.beep_nid = 0x10;
>   	set_beep_amp(spec, 0x10, 0, HDA_OUTPUT);
> @@ -588,6 +591,8 @@ static int patch_ad1981(struct hda_codec *codec)
>   		return -ENOMEM;
>   	spec = codec->spec;
>   
> +	codec->no_trigger_sense = 1;
> +
>   	spec->gen.mixer_nid = 0x0e;
>   	spec->gen.beep_nid = 0x10;
>   	set_beep_amp(spec, 0x0d, 0, HDA_OUTPUT);
> @@ -913,6 +918,8 @@ static int patch_ad1988(struct hda_codec *codec)
>   		return err;
>   	spec = codec->spec;
>   
> +	codec->no_trigger_sense = 1;
> +
>   	spec->gen.mixer_nid = 0x20;
>   	spec->gen.mixer_merge_nid = 0x21;
>   	spec->gen.beep_nid = 0x10;
> @@ -1140,6 +1147,8 @@ static int patch_ad1882(struct hda_codec *codec)
>   		return err;
>   	spec = codec->spec;
>   
> +	codec->no_trigger_sense = 1;
> +
>   	spec->gen.mixer_nid = 0x20;
>   	spec->gen.mixer_merge_nid = 0x21;
>   	spec->gen.beep_nid = 0x10;
> .
>

I've applied the patch and rebuild the kernel. But it didn't solve the 
problem. I have applied the patch to kernel 3.13.11.2. Does it matter? 
Should I try to download latest kernel and try to apply patch to it?

Here is the output of the monitor with PA enabled:

card 0, #22 (0,0,0,Mic Jack,0) VALUE
card 0, #23 (0,0,0,Headphone Jack,0) VALUE
card 0, #4 (2,0,0,Speaker Playback Switch,0) VALUE
card 0, #3 (2,0,0,Speaker Playback Volume,0) VALUE
card 0, #22 (0,0,0,Mic Jack,0) VALUE
card 0, #22 (0,0,0,Mic Jack,0) VALUE
card 0, #22 (0,0,0,Mic Jack,0) VALUE
card 0, #23 (0,0,0,Headphone Jack,0) VALUE
card 0, #4 (2,0,0,Speaker Playback Switch,0) VALUE
card 0, #3 (2,0,0,Speaker Playback Volume,0) VALUE
card 0, #22 (0,0,0,Mic Jack,0) VALUE
card 0, #23 (0,0,0,Headphone Jack,0) VALUE
card 0, #4 (2,0,0,Speaker Playback Switch,0) VALUE
card 0, #3 (2,0,0,Speaker Playback Volume,0) VALUE
card 0, #13 (2,0,0,Capture Volume,0) VALUE
card 0, #23 (0,0,0,Headphone Jack,0) VALUE
card 0, #22 (0,0,0,Mic Jack,0) VALUE
card 0, #4 (2,0,0,Speaker Playback Switch,0) VALUE
card 0, #3 (2,0,0,Speaker Playback Volume,0) VALUE
card 0, #13 (2,0,0,Capture Volume,0) VALUE

Thank you,
Alex


More information about the Alsa-devel mailing list