[alsa-devel] Intel HDA / ALC662 analog surround problem

Raymond Yau superquad.vortex2 at gmail.com
Fri Mar 6 02:49:40 CET 2015


>
> > 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 */
+ { }
+ }
+ },


More information about the Alsa-devel mailing list