Message ID | 54f889c7.33f7fe8f.bm001@wupperonline.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
> > > Try [...] to change node 0x15 Speaker as not connected > > This is exactly what I did now: > > diff -Nur a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c > --- a/sound/pci/hda/patch_realtek.c 2015-02-27 02:49:36.000000000 +0100 > +++ b/sound/pci/hda/patch_realtek.c 2015-03-05 17:09:15.305016021 +0100 > @@ -5665,9 +5665,10 @@ > > static int alc662_parse_auto_config(struct hda_codec *codec) > { > - static const hda_nid_t alc662_ignore[] = { 0x1d, 0 }; > + /* ignore internal speaker (0x15) in order to get a multi-io config */ > + static const hda_nid_t alc662_ignore[] = { 0x15, 0x1d, 0 }; > static const hda_nid_t alc663_ssids[] = { 0x15, 0x1b, 0x14, 0x21 }; > - static const hda_nid_t alc662_ssids[] = { 0x15, 0x1b, 0x14, 0 }; > + static const hda_nid_t alc662_ssids[] = { 0x1b, 0x14, 0 }; > const hda_nid_t *ssids; > > if (codec->vendor_id == 0x10ec0272 || codec->vendor_id == 0x10ec0663 || > > It gives me the multi-io config without side effects and without the > hp_lo_shared and spk_lo_shared issue in get_line_out_pfx(). > > I'd like to make this configurable for people suffering from the same problem > with their ALC662, but I don't know how to identify when it would occur. > you need pin fixup by removing internal speaker and snd_pci_quirk of your pci sbsystem id In theory, user can get back the internal speaker by specify model=nofixup + [ALC662_FIXUP_NO_SPEAKER] = { + .type = ALC_FIXUP_PINS, + .v.pins = (const struct alc_pincfg[]) { + { 0x15, 0x4000000 }, /* remove internal speaker */ + { } + } + },
At Thu, 05 Mar 2015 17:52:19 +0100, Ingo Brückl wrote: > > Raymond Yau wrote on Fri, 27 Feb 2015 10:11:20 +0800: > > > Try [...] to change node 0x15 Speaker as not connected > > This is exactly what I did now: > > diff -Nur a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c > --- a/sound/pci/hda/patch_realtek.c 2015-02-27 02:49:36.000000000 +0100 > +++ b/sound/pci/hda/patch_realtek.c 2015-03-05 17:09:15.305016021 +0100 > @@ -5665,9 +5665,10 @@ > > static int alc662_parse_auto_config(struct hda_codec *codec) > { > - static const hda_nid_t alc662_ignore[] = { 0x1d, 0 }; > + /* ignore internal speaker (0x15) in order to get a multi-io config */ > + static const hda_nid_t alc662_ignore[] = { 0x15, 0x1d, 0 }; > static const hda_nid_t alc663_ssids[] = { 0x15, 0x1b, 0x14, 0x21 }; > - static const hda_nid_t alc662_ssids[] = { 0x15, 0x1b, 0x14, 0 }; > + static const hda_nid_t alc662_ssids[] = { 0x1b, 0x14, 0 }; > const hda_nid_t *ssids; > > if (codec->vendor_id == 0x10ec0272 || codec->vendor_id == 0x10ec0663 || > > It gives me the multi-io config without side effects and without the > hp_lo_shared and spk_lo_shared issue in get_line_out_pfx(). Well, the starting point is wrong. You cannot ignore pins if you really use them. It might look as if something is working casually, but this isn't supposed to work at all. Takashi
Takashi Iwai wrote on Fri, 06 Mar 2015 10:24:20 +0100: > At Thu, 05 Mar 2015 17:52:19 +0100, > Ingo Brückl wrote: >> >> Raymond Yau wrote on Fri, 27 Feb 2015 10:11:20 +0800: >> >> > Try [...] to change node 0x15 Speaker as not connected >> >> This is exactly what I did now: >> >> diff -Nur a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c >> --- a/sound/pci/hda/patch_realtek.c 2015-02-27 02:49:36.000000000 +0100 >> +++ b/sound/pci/hda/patch_realtek.c 2015-03-05 17:09:15.305016021 +0100 >> @@ -5665,9 +5665,10 @@ >> >> static int alc662_parse_auto_config(struct hda_codec *codec) >> { >> - static const hda_nid_t alc662_ignore[] = { 0x1d, 0 }; >> + /* ignore internal speaker (0x15) in order to get a multi-io config */ >> + static const hda_nid_t alc662_ignore[] = { 0x15, 0x1d, 0 }; >> static const hda_nid_t alc663_ssids[] = { 0x15, 0x1b, 0x14, 0x21 }; >> - static const hda_nid_t alc662_ssids[] = { 0x15, 0x1b, 0x14, 0 }; >> + static const hda_nid_t alc662_ssids[] = { 0x1b, 0x14, 0 }; >> const hda_nid_t *ssids; >> >> if (codec->vendor_id == 0x10ec0272 || codec->vendor_id == 0x10ec0663 || >> >> It gives me the multi-io config without side effects and without the >> hp_lo_shared and spk_lo_shared issue in get_line_out_pfx(). > Well, the starting point is wrong. You cannot ignore pins if you > really use them. It might look as if something is working casually, > but this isn't supposed to work at all. I'm not using it. Since it seems impossible to use it in addition to have a multi-io 6ch config, I've decided to "cut" it off. Ingo
At Fri, 06 Mar 2015 11:03:14 +0100, Ingo Brückl wrote: > > Takashi Iwai wrote on Fri, 06 Mar 2015 10:24:20 +0100: > > > At Thu, 05 Mar 2015 17:52:19 +0100, > > Ingo Brückl wrote: > >> > >> Raymond Yau wrote on Fri, 27 Feb 2015 10:11:20 +0800: > >> > >> > Try [...] to change node 0x15 Speaker as not connected > >> > >> This is exactly what I did now: > >> > >> diff -Nur a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c > >> --- a/sound/pci/hda/patch_realtek.c 2015-02-27 02:49:36.000000000 +0100 > >> +++ b/sound/pci/hda/patch_realtek.c 2015-03-05 17:09:15.305016021 +0100 > >> @@ -5665,9 +5665,10 @@ > >> > >> static int alc662_parse_auto_config(struct hda_codec *codec) > >> { > >> - static const hda_nid_t alc662_ignore[] = { 0x1d, 0 }; > >> + /* ignore internal speaker (0x15) in order to get a multi-io config */ > >> + static const hda_nid_t alc662_ignore[] = { 0x15, 0x1d, 0 }; > >> static const hda_nid_t alc663_ssids[] = { 0x15, 0x1b, 0x14, 0x21 }; > >> - static const hda_nid_t alc662_ssids[] = { 0x15, 0x1b, 0x14, 0 }; > >> + static const hda_nid_t alc662_ssids[] = { 0x1b, 0x14, 0 }; > >> const hda_nid_t *ssids; > >> > >> if (codec->vendor_id == 0x10ec0272 || codec->vendor_id == 0x10ec0663 || > >> > >> It gives me the multi-io config without side effects and without the > >> hp_lo_shared and spk_lo_shared issue in get_line_out_pfx(). > > > Well, the starting point is wrong. You cannot ignore pins if you > > really use them. It might look as if something is working casually, > > but this isn't supposed to work at all. > > I'm not using it. > > Since it seems impossible to use it in addition to have a multi-io 6ch > config, I've decided to "cut" it off. Then why not just disabling the speaker pin via the pin config? Takashi
diff -Nur a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c --- a/sound/pci/hda/patch_realtek.c 2015-02-27 02:49:36.000000000 +0100 +++ b/sound/pci/hda/patch_realtek.c 2015-03-05 17:09:15.305016021 +0100 @@ -5665,9 +5665,10 @@ static int alc662_parse_auto_config(struct hda_codec *codec) { - static const hda_nid_t alc662_ignore[] = { 0x1d, 0 }; + /* ignore internal speaker (0x15) in order to get a multi-io config */ + static const hda_nid_t alc662_ignore[] = { 0x15, 0x1d, 0 }; static const hda_nid_t alc663_ssids[] = { 0x15, 0x1b, 0x14, 0x21 }; - static const hda_nid_t alc662_ssids[] = { 0x15, 0x1b, 0x14, 0 }; + static const hda_nid_t alc662_ssids[] = { 0x1b, 0x14, 0 }; const hda_nid_t *ssids; if (codec->vendor_id == 0x10ec0272 || codec->vendor_id == 0x10ec0663 ||
Raymond Yau wrote on Fri, 27 Feb 2015 10:11:20 +0800: > Try [...] to change node 0x15 Speaker as not connected This is exactly what I did now: It gives me the multi-io config without side effects and without the hp_lo_shared and spk_lo_shared issue in get_line_out_pfx(). I'd like to make this configurable for people suffering from the same problem with their ALC662, but I don't know how to identify when it would occur. Ingo