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