|
@@ -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;
|
|
@@ -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;
|
|
|
}
|
|
|
|
|
@@ -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) {
|