Skip to content

Commit

Permalink
ALSA: hda - Fix invalid connections in VT1802 codec
Browse files Browse the repository at this point in the history
VT1802 codec provides the invalid connection lists of NID 0x24 and
0x33 containing the routes to a non-exist widget 0x3e.  This confuses
the auto-parser.  Fix it up in the driver by overriding these
connections.

Reported-by: Massimo Del Fedele <max@veneto.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Takashi Iwai committed Nov 7, 2012
1 parent 5b37619 commit ef4da45
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions sound/pci/hda/patch_via.c
Original file line number Diff line number Diff line change
Expand Up @@ -3646,6 +3646,18 @@ static const struct snd_pci_quirk vt2002p_fixups[] = {
{}
};

/* NIDs 0x24 and 0x33 on VT1802 have connections to non-existing NID 0x3e
* Replace this with mixer NID 0x1c
*/
static void fix_vt1802_connections(struct hda_codec *codec)
{
static hda_nid_t conn_24[] = { 0x14, 0x1c };
static hda_nid_t conn_33[] = { 0x1c };

snd_hda_override_conn_list(codec, 0x24, ARRAY_SIZE(conn_24), conn_24);
snd_hda_override_conn_list(codec, 0x33, ARRAY_SIZE(conn_33), conn_33);
}

/* patch for vt2002P */
static int patch_vt2002P(struct hda_codec *codec)
{
Expand All @@ -3660,6 +3672,8 @@ static int patch_vt2002P(struct hda_codec *codec)
spec->aa_mix_nid = 0x21;
override_mic_boost(codec, 0x2b, 0, 3, 40);
override_mic_boost(codec, 0x29, 0, 3, 40);
if (spec->codec_type == VT1802)
fix_vt1802_connections(codec);
add_secret_dac_path(codec);

snd_hda_pick_fixup(codec, NULL, vt2002p_fixups, via_fixups);
Expand Down

0 comments on commit ef4da45

Please sign in to comment.