diff mbox

ALSA: hda - Fixing speaker noise on two thinkpad machines

Message ID 1449498712-21498-1-git-send-email-hui.wang@canonical.com (mailing list archive)
State New, archived
Headers show

Commit Message

Hui Wang Dec. 7, 2015, 2:31 p.m. UTC
Disable the aamix can fix this problem.

Cc: stable@vger.kernel.org
BugLink: https://bugs.launchpad.net/bugs/1523517
Signed-off-by: Hui Wang <hui.wang@canonical.com>
---
 sound/pci/hda/patch_realtek.c | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Takashi Iwai Dec. 7, 2015, 2:35 p.m. UTC | #1
On Mon, 07 Dec 2015 15:31:52 +0100,
Hui Wang wrote:
> 
> Disable the aamix can fix this problem.

Which codec do these machines have?


Takashi

> 
> Cc: stable@vger.kernel.org
> BugLink: https://bugs.launchpad.net/bugs/1523517
> Signed-off-by: Hui Wang <hui.wang@canonical.com>
> ---
>  sound/pci/hda/patch_realtek.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index ebc5362..49b1d36 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -4596,6 +4596,7 @@ enum {
>  	ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
>  	ALC275_FIXUP_DELL_XPS,
>  	ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE,
> +	ALC293_FIXUP_LENOVO_SPK_NOISE,
>  };
>  
>  static const struct hda_fixup alc269_fixups[] = {
> @@ -5187,6 +5188,12 @@ static const struct hda_fixup alc269_fixups[] = {
>  		.chained = true,
>  		.chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE
>  	},
> +	[ALC293_FIXUP_LENOVO_SPK_NOISE] = {
> +		.type = HDA_FIXUP_FUNC,
> +		.v.func = alc_fixup_disable_aamix,
> +		.chained = true,
> +		.chain_id = ALC269_FIXUP_THINKPAD_ACPI
> +	},
>  };
>  
>  static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> @@ -5334,6 +5341,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>  	SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
>  	SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK),
>  	SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK),
> +	SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
>  	SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC),
>  	SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP),
>  	SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
> @@ -5343,6 +5351,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>  	SND_PCI_QUIRK(0x17aa, 0x5034, "Thinkpad T450", ALC292_FIXUP_TPT440_DOCK),
>  	SND_PCI_QUIRK(0x17aa, 0x5036, "Thinkpad T450s", ALC292_FIXUP_TPT440_DOCK),
>  	SND_PCI_QUIRK(0x17aa, 0x503c, "Thinkpad L450", ALC292_FIXUP_TPT440_DOCK),
> +	SND_PCI_QUIRK(0x17aa, 0x504b, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
>  	SND_PCI_QUIRK(0x17aa, 0x5109, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
>  	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K),
>  	SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),
> -- 
> 1.9.1
>
Hui Wang Dec. 7, 2015, 2:38 p.m. UTC | #2
On 12/07/2015 10:35 PM, Takashi Iwai wrote:
> On Mon, 07 Dec 2015 15:31:52 +0100,
> Hui Wang wrote:
>> Disable the aamix can fix this problem.
> Which codec do these machines have?

Codec: Realtek ALC293
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0293

>
> Takashi
>
>> Cc: stable@vger.kernel.org
>> BugLink: https://bugs.launchpad.net/bugs/1523517
>> Signed-off-by: Hui Wang <hui.wang@canonical.com>
>> ---
>>   sound/pci/hda/patch_realtek.c | 9 +++++++++
>>   1 file changed, 9 insertions(+)
>>
>> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
>> index ebc5362..49b1d36 100644
>> --- a/sound/pci/hda/patch_realtek.c
>> +++ b/sound/pci/hda/patch_realtek.c
>> @@ -4596,6 +4596,7 @@ enum {
>>   	ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
>>   	ALC275_FIXUP_DELL_XPS,
>>   	ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE,
>> +	ALC293_FIXUP_LENOVO_SPK_NOISE,
>>   };
>>   
>>   static const struct hda_fixup alc269_fixups[] = {
>> @@ -5187,6 +5188,12 @@ static const struct hda_fixup alc269_fixups[] = {
>>   		.chained = true,
>>   		.chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE
>>   	},
>> +	[ALC293_FIXUP_LENOVO_SPK_NOISE] = {
>> +		.type = HDA_FIXUP_FUNC,
>> +		.v.func = alc_fixup_disable_aamix,
>> +		.chained = true,
>> +		.chain_id = ALC269_FIXUP_THINKPAD_ACPI
>> +	},
>>   };
>>   
>>   static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>> @@ -5334,6 +5341,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>>   	SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
>>   	SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK),
>>   	SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK),
>> +	SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
>>   	SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC),
>>   	SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP),
>>   	SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
>> @@ -5343,6 +5351,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>>   	SND_PCI_QUIRK(0x17aa, 0x5034, "Thinkpad T450", ALC292_FIXUP_TPT440_DOCK),
>>   	SND_PCI_QUIRK(0x17aa, 0x5036, "Thinkpad T450s", ALC292_FIXUP_TPT440_DOCK),
>>   	SND_PCI_QUIRK(0x17aa, 0x503c, "Thinkpad L450", ALC292_FIXUP_TPT440_DOCK),
>> +	SND_PCI_QUIRK(0x17aa, 0x504b, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
>>   	SND_PCI_QUIRK(0x17aa, 0x5109, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
>>   	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K),
>>   	SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),
>> -- 
>> 1.9.1
>>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
Takashi Iwai Dec. 7, 2015, 2:47 p.m. UTC | #3
On Mon, 07 Dec 2015 15:38:05 +0100,
Hui Wang wrote:
> 
> On 12/07/2015 10:35 PM, Takashi Iwai wrote:
> > On Mon, 07 Dec 2015 15:31:52 +0100,
> > Hui Wang wrote:
> >> Disable the aamix can fix this problem.
> > Which codec do these machines have?
> 
> Codec: Realtek ALC293
> Address: 0
> AFG Function Id: 0x1 (unsol 1)
> Vendor Id: 0x10ec0293

Hm, and only Thinkpads with this codec suffer?  I mean, there are lots
of TPs with ALC292.  Please give more background.


Takashi

> 
> >
> > Takashi
> >
> >> Cc: stable@vger.kernel.org
> >> BugLink: https://bugs.launchpad.net/bugs/1523517
> >> Signed-off-by: Hui Wang <hui.wang@canonical.com>
> >> ---
> >>   sound/pci/hda/patch_realtek.c | 9 +++++++++
> >>   1 file changed, 9 insertions(+)
> >>
> >> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> >> index ebc5362..49b1d36 100644
> >> --- a/sound/pci/hda/patch_realtek.c
> >> +++ b/sound/pci/hda/patch_realtek.c
> >> @@ -4596,6 +4596,7 @@ enum {
> >>   	ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
> >>   	ALC275_FIXUP_DELL_XPS,
> >>   	ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE,
> >> +	ALC293_FIXUP_LENOVO_SPK_NOISE,
> >>   };
> >>   
> >>   static const struct hda_fixup alc269_fixups[] = {
> >> @@ -5187,6 +5188,12 @@ static const struct hda_fixup alc269_fixups[] = {
> >>   		.chained = true,
> >>   		.chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE
> >>   	},
> >> +	[ALC293_FIXUP_LENOVO_SPK_NOISE] = {
> >> +		.type = HDA_FIXUP_FUNC,
> >> +		.v.func = alc_fixup_disable_aamix,
> >> +		.chained = true,
> >> +		.chain_id = ALC269_FIXUP_THINKPAD_ACPI
> >> +	},
> >>   };
> >>   
> >>   static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> >> @@ -5334,6 +5341,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> >>   	SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
> >>   	SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK),
> >>   	SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK),
> >> +	SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
> >>   	SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC),
> >>   	SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP),
> >>   	SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
> >> @@ -5343,6 +5351,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> >>   	SND_PCI_QUIRK(0x17aa, 0x5034, "Thinkpad T450", ALC292_FIXUP_TPT440_DOCK),
> >>   	SND_PCI_QUIRK(0x17aa, 0x5036, "Thinkpad T450s", ALC292_FIXUP_TPT440_DOCK),
> >>   	SND_PCI_QUIRK(0x17aa, 0x503c, "Thinkpad L450", ALC292_FIXUP_TPT440_DOCK),
> >> +	SND_PCI_QUIRK(0x17aa, 0x504b, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
> >>   	SND_PCI_QUIRK(0x17aa, 0x5109, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
> >>   	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K),
> >>   	SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),
> >> -- 
> >> 1.9.1
> >>
> > _______________________________________________
> > Alsa-devel mailing list
> > Alsa-devel@alsa-project.org
> > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> >
>
Hui Wang Dec. 7, 2015, 3:01 p.m. UTC | #4
On 12/07/2015 10:47 PM, Takashi Iwai wrote:
> On Mon, 07 Dec 2015 15:38:05 +0100,
> Hui Wang wrote:
>> On 12/07/2015 10:35 PM, Takashi Iwai wrote:
>>> On Mon, 07 Dec 2015 15:31:52 +0100,
>>> Hui Wang wrote:
>>>> Disable the aamix can fix this problem.
>>> Which codec do these machines have?
>> Codec: Realtek ALC293
>> Address: 0
>> AFG Function Id: 0x1 (unsol 1)
>> Vendor Id: 0x10ec0293
> Hm, and only Thinkpads with this codec suffer?  I mean, there are lots
> of TPs with ALC292.  Please give more background.
Recently we enabled two thinkpad laptop models, both of them are based 
on the Intel skylake platform, and both of them used alc293 to be the 
analog audio codec. When the machine boot to the ubuntu desktop, there 
will be a notification sound when greeter dialogue shows up, on these 
two models, there is noise with the notification sound. By the way, we 
have 3 SKUs for each model, all of them have this problem.

After disable the analog audio loopback, the noise disappears.

Codec: Realtek ALC293
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0293
Subsystem Id: 0x17aa2233
Revision Id: 0x100003
No Modem Function Group found


Codec: Realtek ALC293
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0293
Subsystem Id: 0x17aa504b
Revision Id: 0x100003
No Modem Function Group found


>
> Takashi
>
>>> Takashi
>>>
>>>> Cc: stable@vger.kernel.org
>>>> BugLink: https://bugs.launchpad.net/bugs/1523517
>>>> Signed-off-by: Hui Wang <hui.wang@canonical.com>
>>>> ---
>>>>    sound/pci/hda/patch_realtek.c | 9 +++++++++
>>>>    1 file changed, 9 insertions(+)
>>>>
>>>> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
>>>> index ebc5362..49b1d36 100644
>>>> --- a/sound/pci/hda/patch_realtek.c
>>>> +++ b/sound/pci/hda/patch_realtek.c
>>>> @@ -4596,6 +4596,7 @@ enum {
>>>>    	ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
>>>>    	ALC275_FIXUP_DELL_XPS,
>>>>    	ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE,
>>>> +	ALC293_FIXUP_LENOVO_SPK_NOISE,
>>>>    };
>>>>    
>>>>    static const struct hda_fixup alc269_fixups[] = {
>>>> @@ -5187,6 +5188,12 @@ static const struct hda_fixup alc269_fixups[] = {
>>>>    		.chained = true,
>>>>    		.chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE
>>>>    	},
>>>> +	[ALC293_FIXUP_LENOVO_SPK_NOISE] = {
>>>> +		.type = HDA_FIXUP_FUNC,
>>>> +		.v.func = alc_fixup_disable_aamix,
>>>> +		.chained = true,
>>>> +		.chain_id = ALC269_FIXUP_THINKPAD_ACPI
>>>> +	},
>>>>    };
>>>>    
>>>>    static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>>>> @@ -5334,6 +5341,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>>>>    	SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
>>>>    	SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK),
>>>>    	SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK),
>>>> +	SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
>>>>    	SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC),
>>>>    	SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP),
>>>>    	SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
>>>> @@ -5343,6 +5351,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>>>>    	SND_PCI_QUIRK(0x17aa, 0x5034, "Thinkpad T450", ALC292_FIXUP_TPT440_DOCK),
>>>>    	SND_PCI_QUIRK(0x17aa, 0x5036, "Thinkpad T450s", ALC292_FIXUP_TPT440_DOCK),
>>>>    	SND_PCI_QUIRK(0x17aa, 0x503c, "Thinkpad L450", ALC292_FIXUP_TPT440_DOCK),
>>>> +	SND_PCI_QUIRK(0x17aa, 0x504b, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
>>>>    	SND_PCI_QUIRK(0x17aa, 0x5109, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
>>>>    	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K),
>>>>    	SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),
>>>> -- 
>>>> 1.9.1
>>>>
>>> _______________________________________________
>>> Alsa-devel mailing list
>>> Alsa-devel@alsa-project.org
>>> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>>>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
Takashi Iwai Dec. 7, 2015, 3:06 p.m. UTC | #5
On Mon, 07 Dec 2015 16:01:02 +0100,
Hui Wang wrote:
> 
> On 12/07/2015 10:47 PM, Takashi Iwai wrote:
> > On Mon, 07 Dec 2015 15:38:05 +0100,
> > Hui Wang wrote:
> >> On 12/07/2015 10:35 PM, Takashi Iwai wrote:
> >>> On Mon, 07 Dec 2015 15:31:52 +0100,
> >>> Hui Wang wrote:
> >>>> Disable the aamix can fix this problem.
> >>> Which codec do these machines have?
> >> Codec: Realtek ALC293
> >> Address: 0
> >> AFG Function Id: 0x1 (unsol 1)
> >> Vendor Id: 0x10ec0293
> > Hm, and only Thinkpads with this codec suffer?  I mean, there are lots
> > of TPs with ALC292.  Please give more background.
> Recently we enabled two thinkpad laptop models, both of them are based 
> on the Intel skylake platform, and both of them used alc293 to be the 
> analog audio codec. When the machine boot to the ubuntu desktop, there 
> will be a notification sound when greeter dialogue shows up, on these 
> two models, there is noise with the notification sound. By the way, we 
> have 3 SKUs for each model, all of them have this problem.

See how more information you can give instead of a single line :)

> After disable the analog audio loopback, the noise disappears.
> 
> Codec: Realtek ALC293
> Address: 0
> AFG Function Id: 0x1 (unsol 1)
> Vendor Id: 0x10ec0293
> Subsystem Id: 0x17aa2233
> Revision Id: 0x100003
> No Modem Function Group found
> 
> 
> Codec: Realtek ALC293
> Address: 0
> AFG Function Id: 0x1 (unsol 1)
> Vendor Id: 0x10ec0293
> Subsystem Id: 0x17aa504b
> Revision Id: 0x100003
> No Modem Function Group found

My main question was rather whether this fix is specific to new
models, and the old models likely don't need it.  Judging from your
description, I guess so.


Takashi

> >
> > Takashi
> >
> >>> Takashi
> >>>
> >>>> Cc: stable@vger.kernel.org
> >>>> BugLink: https://bugs.launchpad.net/bugs/1523517
> >>>> Signed-off-by: Hui Wang <hui.wang@canonical.com>
> >>>> ---
> >>>>    sound/pci/hda/patch_realtek.c | 9 +++++++++
> >>>>    1 file changed, 9 insertions(+)
> >>>>
> >>>> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> >>>> index ebc5362..49b1d36 100644
> >>>> --- a/sound/pci/hda/patch_realtek.c
> >>>> +++ b/sound/pci/hda/patch_realtek.c
> >>>> @@ -4596,6 +4596,7 @@ enum {
> >>>>    	ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
> >>>>    	ALC275_FIXUP_DELL_XPS,
> >>>>    	ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE,
> >>>> +	ALC293_FIXUP_LENOVO_SPK_NOISE,
> >>>>    };
> >>>>    
> >>>>    static const struct hda_fixup alc269_fixups[] = {
> >>>> @@ -5187,6 +5188,12 @@ static const struct hda_fixup alc269_fixups[] = {
> >>>>    		.chained = true,
> >>>>    		.chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE
> >>>>    	},
> >>>> +	[ALC293_FIXUP_LENOVO_SPK_NOISE] = {
> >>>> +		.type = HDA_FIXUP_FUNC,
> >>>> +		.v.func = alc_fixup_disable_aamix,
> >>>> +		.chained = true,
> >>>> +		.chain_id = ALC269_FIXUP_THINKPAD_ACPI
> >>>> +	},
> >>>>    };
> >>>>    
> >>>>    static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> >>>> @@ -5334,6 +5341,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> >>>>    	SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
> >>>>    	SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK),
> >>>>    	SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK),
> >>>> +	SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
> >>>>    	SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC),
> >>>>    	SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP),
> >>>>    	SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
> >>>> @@ -5343,6 +5351,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> >>>>    	SND_PCI_QUIRK(0x17aa, 0x5034, "Thinkpad T450", ALC292_FIXUP_TPT440_DOCK),
> >>>>    	SND_PCI_QUIRK(0x17aa, 0x5036, "Thinkpad T450s", ALC292_FIXUP_TPT440_DOCK),
> >>>>    	SND_PCI_QUIRK(0x17aa, 0x503c, "Thinkpad L450", ALC292_FIXUP_TPT440_DOCK),
> >>>> +	SND_PCI_QUIRK(0x17aa, 0x504b, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
> >>>>    	SND_PCI_QUIRK(0x17aa, 0x5109, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
> >>>>    	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K),
> >>>>    	SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),
> >>>> -- 
> >>>> 1.9.1
> >>>>
> >>> _______________________________________________
> >>> Alsa-devel mailing list
> >>> Alsa-devel@alsa-project.org
> >>> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> >>>
> > _______________________________________________
> > Alsa-devel mailing list
> > Alsa-devel@alsa-project.org
> > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> >
>
Hui Wang Dec. 8, 2015, 1:37 a.m. UTC | #6
On 12/07/2015 11:06 PM, Takashi Iwai wrote:
> On Mon, 07 Dec 2015 16:01:02 +0100,
> Hui Wang wrote:
>> On 12/07/2015 10:47 PM, Takashi Iwai wrote:
>>> On Mon, 07 Dec 2015 15:38:05 +0100,
>>> Hui Wang wrote:
>>>> On 12/07/2015 10:35 PM, Takashi Iwai wrote:
>>>>> On Mon, 07 Dec 2015 15:31:52 +0100,
>>>>> Hui Wang wrote:
>>>>>> Disable the aamix can fix this problem.
>>>>> Which codec do these machines have?
>>>> Codec: Realtek ALC293
>>>> Address: 0
>>>> AFG Function Id: 0x1 (unsol 1)
>>>> Vendor Id: 0x10ec0293
>>> Hm, and only Thinkpads with this codec suffer?  I mean, there are lots
>>> of TPs with ALC292.  Please give more background.
>> Recently we enabled two thinkpad laptop models, both of them are based
>> on the Intel skylake platform, and both of them used alc293 to be the
>> analog audio codec. When the machine boot to the ubuntu desktop, there
>> will be a notification sound when greeter dialogue shows up, on these
>> two models, there is noise with the notification sound. By the way, we
>> have 3 SKUs for each model, all of them have this problem.
> See how more information you can give instead of a single line :)
>
>> After disable the analog audio loopback, the noise disappears.
>>
>> Codec: Realtek ALC293
>> Address: 0
>> AFG Function Id: 0x1 (unsol 1)
>> Vendor Id: 0x10ec0293
>> Subsystem Id: 0x17aa2233
>> Revision Id: 0x100003
>> No Modem Function Group found
>>
>>
>> Codec: Realtek ALC293
>> Address: 0
>> AFG Function Id: 0x1 (unsol 1)
>> Vendor Id: 0x10ec0293
>> Subsystem Id: 0x17aa504b
>> Revision Id: 0x100003
>> No Modem Function Group found
> My main question was rather whether this fix is specific to new
> models, and the old models likely don't need it.  Judging from your
> description, I guess so.
>
Yes, only latest thinkpad models with this codec have this problem, old 
models don't need this quirk.

I will add more information in the commit header and send the patch of V2.

Thanks for reviewing.


> Takashi
>
>>> Takashi
>>>
>>>>> Takashi
>>>>>
>>>>>> Cc: stable@vger.kernel.org
>>>>>> BugLink: https://bugs.launchpad.net/bugs/1523517
>>>>>> Signed-off-by: Hui Wang <hui.wang@canonical.com>
>>>>>> ---
>>>>>>     sound/pci/hda/patch_realtek.c | 9 +++++++++
>>>>>>     1 file changed, 9 insertions(+)
>>>>>>
>>>>>> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
>>>>>> index ebc5362..49b1d36 100644
>>>>>> --- a/sound/pci/hda/patch_realtek.c
>>>>>> +++ b/sound/pci/hda/patch_realtek.c
>>>>>> @@ -4596,6 +4596,7 @@ enum {
>>>>>>     	ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
>>>>>>     	ALC275_FIXUP_DELL_XPS,
>>>>>>     	ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE,
>>>>>> +	ALC293_FIXUP_LENOVO_SPK_NOISE,
>>>>>>     };
>>>>>>     
>>>>>>     static const struct hda_fixup alc269_fixups[] = {
>>>>>> @@ -5187,6 +5188,12 @@ static const struct hda_fixup alc269_fixups[] = {
>>>>>>     		.chained = true,
>>>>>>     		.chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE
>>>>>>     	},
>>>>>> +	[ALC293_FIXUP_LENOVO_SPK_NOISE] = {
>>>>>> +		.type = HDA_FIXUP_FUNC,
>>>>>> +		.v.func = alc_fixup_disable_aamix,
>>>>>> +		.chained = true,
>>>>>> +		.chain_id = ALC269_FIXUP_THINKPAD_ACPI
>>>>>> +	},
>>>>>>     };
>>>>>>     
>>>>>>     static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>>>>>> @@ -5334,6 +5341,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>>>>>>     	SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
>>>>>>     	SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK),
>>>>>>     	SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK),
>>>>>> +	SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
>>>>>>     	SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC),
>>>>>>     	SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP),
>>>>>>     	SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
>>>>>> @@ -5343,6 +5351,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>>>>>>     	SND_PCI_QUIRK(0x17aa, 0x5034, "Thinkpad T450", ALC292_FIXUP_TPT440_DOCK),
>>>>>>     	SND_PCI_QUIRK(0x17aa, 0x5036, "Thinkpad T450s", ALC292_FIXUP_TPT440_DOCK),
>>>>>>     	SND_PCI_QUIRK(0x17aa, 0x503c, "Thinkpad L450", ALC292_FIXUP_TPT440_DOCK),
>>>>>> +	SND_PCI_QUIRK(0x17aa, 0x504b, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
>>>>>>     	SND_PCI_QUIRK(0x17aa, 0x5109, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
>>>>>>     	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K),
>>>>>>     	SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),
>>>>>> -- 
>>>>>> 1.9.1
>>>>>>
>>>>> _______________________________________________
>>>>> Alsa-devel mailing list
>>>>> Alsa-devel@alsa-project.org
>>>>> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>>>>>
>>> _______________________________________________
>>> Alsa-devel mailing list
>>> Alsa-devel@alsa-project.org
>>> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>>>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
diff mbox

Patch

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index ebc5362..49b1d36 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4596,6 +4596,7 @@  enum {
 	ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
 	ALC275_FIXUP_DELL_XPS,
 	ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE,
+	ALC293_FIXUP_LENOVO_SPK_NOISE,
 };
 
 static const struct hda_fixup alc269_fixups[] = {
@@ -5187,6 +5188,12 @@  static const struct hda_fixup alc269_fixups[] = {
 		.chained = true,
 		.chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE
 	},
+	[ALC293_FIXUP_LENOVO_SPK_NOISE] = {
+		.type = HDA_FIXUP_FUNC,
+		.v.func = alc_fixup_disable_aamix,
+		.chained = true,
+		.chain_id = ALC269_FIXUP_THINKPAD_ACPI
+	},
 };
 
 static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -5334,6 +5341,7 @@  static const struct snd_pci_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
 	SND_PCI_QUIRK(0x17aa, 0x2223, "ThinkPad T550", ALC292_FIXUP_TPT440_DOCK),
 	SND_PCI_QUIRK(0x17aa, 0x2226, "ThinkPad X250", ALC292_FIXUP_TPT440_DOCK),
+	SND_PCI_QUIRK(0x17aa, 0x2233, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
 	SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210", ALC283_FIXUP_INT_MIC),
 	SND_PCI_QUIRK(0x17aa, 0x3978, "IdeaPad Y410P", ALC269_FIXUP_NO_SHUTUP),
 	SND_PCI_QUIRK(0x17aa, 0x5013, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
@@ -5343,6 +5351,7 @@  static const struct snd_pci_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x17aa, 0x5034, "Thinkpad T450", ALC292_FIXUP_TPT440_DOCK),
 	SND_PCI_QUIRK(0x17aa, 0x5036, "Thinkpad T450s", ALC292_FIXUP_TPT440_DOCK),
 	SND_PCI_QUIRK(0x17aa, 0x503c, "Thinkpad L450", ALC292_FIXUP_TPT440_DOCK),
+	SND_PCI_QUIRK(0x17aa, 0x504b, "Thinkpad", ALC293_FIXUP_LENOVO_SPK_NOISE),
 	SND_PCI_QUIRK(0x17aa, 0x5109, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
 	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K),
 	SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),