[Bug 1549660] Re: [PATCH] ALSA: hda - Fixup speaker pass-through control for nid 0x14 on ALC225

2016-02-25 Thread David Henningsson
On 2016-02-25 09:29, Takashi Iwai wrote:
> On Thu, 25 Feb 2016 09:13:21 +0100,
> David Henningsson wrote:
>>
>> On one of the machines we enable, we found that the actual speaker volume
>> did not always correspond to the volume set in alsamixer. This patch
>> fixes that problem.
>>
>> This patch was orginally written by Kailang @ Realtek, I've rebased it
>> to fit sound git master.
>>
>> BugLink: https://bugs.launchpad.net/bugs/1549660
>> Co-Authored-By: Kailang 
>> Signed-off-by: David Henningsson 
>
> This conflicts with the latest for-linus branch right after I applied
> another fixup addition.  Could you again rebase to for-linus branch?

Ok, done now. Let me know when it's pushed out. Thanks!

> Also, I guess it deserves Cc to stable?

I guess so too, so added in v2. I'm always a bit scared to do so when
  1) we deal with machines that are not released yet
  2) there are verbs in there which only Kailang knows the true meaning 
of...


>
>
> thanks,
>
> Takashi
>
>> ---
>>   sound/pci/hda/patch_realtek.c | 23 +--
>>   1 file changed, 21 insertions(+), 2 deletions(-)
>>
>> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
>> index efd4980..ab353b0 100644
>> --- a/sound/pci/hda/patch_realtek.c
>> +++ b/sound/pci/hda/patch_realtek.c
>> @@ -3801,6 +3801,10 @@ static void alc_headset_mode_mic_in(struct hda_codec 
>> *codec, hda_nid_t hp_pin,
>>
>>   static void alc_headset_mode_default(struct hda_codec *codec)
>>   {
>> +static struct coef_fw coef0225[] = {
>> +UPDATE_COEF(0x45, 0x3f<<10, 0x34<<10),
>> +{}
>> +};
>>  static struct coef_fw coef0255[] = {
>>  WRITE_COEF(0x45, 0xc089),
>>  WRITE_COEF(0x45, 0xc489),
>> @@ -3842,6 +3846,9 @@ static void alc_headset_mode_default(struct hda_codec 
>> *codec)
>>  };
>>
>>  switch (codec->core.vendor_id) {
>> +case 0x10ec0225:
>> +alc_process_coef_fw(codec, coef0225);
>> +break;
>>  case 0x10ec0255:
>>  case 0x10ec0256:
>>  alc_process_coef_fw(codec, coef0255);
>> @@ -4749,6 +4756,7 @@ enum {
>>  ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE,
>>  ALC293_FIXUP_LENOVO_SPK_NOISE,
>>  ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY,
>> +ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
>>   };
>>
>>   static const struct hda_fixup alc269_fixups[] = {
>> @@ -5368,6 +5376,17 @@ static const struct hda_fixup alc269_fixups[] = {
>>  .type = HDA_FIXUP_FUNC,
>>  .v.func = alc233_fixup_lenovo_line2_mic_hotkey,
>>  },
>> +[ALC225_FIXUP_DELL1_MIC_NO_PRESENCE] = {
>> +.type = HDA_FIXUP_VERBS,
>> +.v.verbs = (const struct hda_verb[]) {
>> +/* Disable pass-through path for FRONT 14h */
>> +{ 0x20, AC_VERB_SET_COEF_INDEX, 0x36 },
>> +{ 0x20, AC_VERB_SET_PROC_COEF, 0x57d7 },
>> +{}
>> +},
>> +.chained = true,
>> +.chain_id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE
>> +},
>>   };
>>
>>   static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>> @@ -5638,10 +5657,10 @@ static const struct hda_model_fixup 
>> alc269_fixup_models[] = {
>>  {0x21, 0x03211020}
>>
>>   static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
>> -SND_HDA_PIN_QUIRK(0x10ec0225, 0x1028, "Dell", 
>> ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
>> +SND_HDA_PIN_QUIRK(0x10ec0225, 0x1028, "Dell", 
>> ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
>>  ALC225_STANDARD_PINS,
>>  {0x14, 0x901701a0}),
>> -SND_HDA_PIN_QUIRK(0x10ec0225, 0x1028, "Dell", 
>> ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
>> +SND_HDA_PIN_QUIRK(0x10ec0225, 0x1028, "Dell", 
>> ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
>>  ALC225_STANDARD_PINS,
>>  {0x14, 0x901701b0}),
>>  SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", 
>> ALC255_FIXUP_DELL2_MIC_NO_PRESENCE,
>> --
>> 1.9.1
>>
>

-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1549660

Title:
  Fix speaker volume on a Dell machine

To manage notifications about this bug go to:
https://bugs.launchpad.net/hwe-next/+bug/1549660/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


[Bug 1549660] Re: [PATCH] ALSA: hda - Fixup speaker pass-through control for nid 0x14 on ALC225

2016-02-25 Thread Takashi Iwai
On Thu, 25 Feb 2016 09:13:21 +0100,
David Henningsson wrote:
> 
> On one of the machines we enable, we found that the actual speaker volume
> did not always correspond to the volume set in alsamixer. This patch
> fixes that problem.
> 
> This patch was orginally written by Kailang @ Realtek, I've rebased it
> to fit sound git master.
> 
> BugLink: https://bugs.launchpad.net/bugs/1549660
> Co-Authored-By: Kailang 
> Signed-off-by: David Henningsson 

This conflicts with the latest for-linus branch right after I applied
another fixup addition.  Could you again rebase to for-linus branch?

Also, I guess it deserves Cc to stable?


thanks,

Takashi

> ---
>  sound/pci/hda/patch_realtek.c | 23 +--
>  1 file changed, 21 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index efd4980..ab353b0 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -3801,6 +3801,10 @@ static void alc_headset_mode_mic_in(struct hda_codec 
> *codec, hda_nid_t hp_pin,
>  
>  static void alc_headset_mode_default(struct hda_codec *codec)
>  {
> + static struct coef_fw coef0225[] = {
> + UPDATE_COEF(0x45, 0x3f<<10, 0x34<<10),
> + {}
> + };
>   static struct coef_fw coef0255[] = {
>   WRITE_COEF(0x45, 0xc089),
>   WRITE_COEF(0x45, 0xc489),
> @@ -3842,6 +3846,9 @@ static void alc_headset_mode_default(struct hda_codec 
> *codec)
>   };
>  
>   switch (codec->core.vendor_id) {
> + case 0x10ec0225:
> + alc_process_coef_fw(codec, coef0225);
> + break;
>   case 0x10ec0255:
>   case 0x10ec0256:
>   alc_process_coef_fw(codec, coef0255);
> @@ -4749,6 +4756,7 @@ enum {
>   ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE,
>   ALC293_FIXUP_LENOVO_SPK_NOISE,
>   ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY,
> + ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
>  };
>  
>  static const struct hda_fixup alc269_fixups[] = {
> @@ -5368,6 +5376,17 @@ static const struct hda_fixup alc269_fixups[] = {
>   .type = HDA_FIXUP_FUNC,
>   .v.func = alc233_fixup_lenovo_line2_mic_hotkey,
>   },
> + [ALC225_FIXUP_DELL1_MIC_NO_PRESENCE] = {
> + .type = HDA_FIXUP_VERBS,
> + .v.verbs = (const struct hda_verb[]) {
> + /* Disable pass-through path for FRONT 14h */
> + { 0x20, AC_VERB_SET_COEF_INDEX, 0x36 },
> + { 0x20, AC_VERB_SET_PROC_COEF, 0x57d7 },
> + {}
> + },
> + .chained = true,
> + .chain_id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE
> + },
>  };
>  
>  static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> @@ -5638,10 +5657,10 @@ static const struct hda_model_fixup 
> alc269_fixup_models[] = {
>   {0x21, 0x03211020}
>  
>  static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
> - SND_HDA_PIN_QUIRK(0x10ec0225, 0x1028, "Dell", 
> ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
> + SND_HDA_PIN_QUIRK(0x10ec0225, 0x1028, "Dell", 
> ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
>   ALC225_STANDARD_PINS,
>   {0x14, 0x901701a0}),
> - SND_HDA_PIN_QUIRK(0x10ec0225, 0x1028, "Dell", 
> ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
> + SND_HDA_PIN_QUIRK(0x10ec0225, 0x1028, "Dell", 
> ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
>   ALC225_STANDARD_PINS,
>   {0x14, 0x901701b0}),
>   SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", 
> ALC255_FIXUP_DELL2_MIC_NO_PRESENCE,
> -- 
> 1.9.1
>

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1549660

Title:
  Fix speaker volume on a Dell machine

To manage notifications about this bug go to:
https://bugs.launchpad.net/hwe-next/+bug/1549660/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs