Skip to content

Commit

Permalink
ALSA: hda - VIA: Fix codec type for VT1708BCE at the right timing
Browse files Browse the repository at this point in the history
Add get_codec_type() in via_new_spec() function to make sure getting
correct codec type before building mixer controls.

Signed-off-by: Lydia Wang <lydiawang@viatech.com.cn>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Lydia Wang authored and Takashi Iwai committed Mar 22, 2011
1 parent 1692228 commit 0341ccd
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions sound/pci/hda/patch_via.c
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ struct via_spec {
#endif
};

static enum VIA_HDA_CODEC get_codec_type(struct hda_codec *codec);
static struct via_spec * via_new_spec(struct hda_codec *codec)
{
struct via_spec *spec;
Expand All @@ -169,6 +170,10 @@ static struct via_spec * via_new_spec(struct hda_codec *codec)

codec->spec = spec;
spec->codec = codec;
spec->codec_type = get_codec_type(codec);
/* VT1708BCE & VT1708S are almost same */
if (spec->codec_type == VT1708BCE)
spec->codec_type = VT1708S;
return spec;
}

Expand Down Expand Up @@ -2203,10 +2208,6 @@ static int via_init(struct hda_codec *codec)
for (i = 0; i < spec->num_iverbs; i++)
snd_hda_sequence_write(codec, spec->init_verbs[i]);

spec->codec_type = get_codec_type(codec);
if (spec->codec_type == VT1708BCE)
spec->codec_type = VT1708S; /* VT1708BCE & VT1708S are almost
same */
/* Lydia Add for EAPD enable */
if (!spec->dig_in_nid) { /* No Digital In connection */
if (spec->dig_in_pin) {
Expand Down

0 comments on commit 0341ccd

Please sign in to comment.