|
@@ -1003,6 +1003,7 @@ static int alc_alloc_spec(struct hda_codec *codec, hda_nid_t mixer_nid)
|
|
|
codec->single_adc_amp = 1;
|
|
|
/* FIXME: do we need this for all Realtek codec models? */
|
|
|
codec->spdif_status_reset = 1;
|
|
|
+ codec->patch_ops = alc_patch_ops;
|
|
|
|
|
|
err = alc_codec_rename_from_preset(codec);
|
|
|
if (err < 0) {
|
|
@@ -1447,6 +1448,8 @@ static int patch_alc880(struct hda_codec *codec)
|
|
|
spec->gen.need_dac_fix = 1;
|
|
|
spec->gen.beep_nid = 0x01;
|
|
|
|
|
|
+ codec->patch_ops.unsol_event = alc880_unsol_event;
|
|
|
+
|
|
|
snd_hda_pick_fixup(codec, alc880_fixup_models, alc880_fixup_tbl,
|
|
|
alc880_fixups);
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
|
|
@@ -1459,10 +1462,6 @@ static int patch_alc880(struct hda_codec *codec)
|
|
|
if (!spec->gen.no_analog)
|
|
|
set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT);
|
|
|
|
|
|
- codec->patch_ops = alc_patch_ops;
|
|
|
- codec->patch_ops.unsol_event = alc880_unsol_event;
|
|
|
-
|
|
|
-
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
|
|
|
|
|
|
return 0;
|
|
@@ -1699,6 +1698,8 @@ static int patch_alc260(struct hda_codec *codec)
|
|
|
spec->gen.prefer_hp_amp = 1;
|
|
|
spec->gen.beep_nid = 0x01;
|
|
|
|
|
|
+ spec->shutup = alc_eapd_shutup;
|
|
|
+
|
|
|
snd_hda_pick_fixup(codec, alc260_fixup_models, alc260_fixup_tbl,
|
|
|
alc260_fixups);
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
|
|
@@ -1711,9 +1712,6 @@ static int patch_alc260(struct hda_codec *codec)
|
|
|
if (!spec->gen.no_analog)
|
|
|
set_beep_amp(spec, 0x07, 0x05, HDA_INPUT);
|
|
|
|
|
|
- codec->patch_ops = alc_patch_ops;
|
|
|
- spec->shutup = alc_eapd_shutup;
|
|
|
-
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
|
|
|
|
|
|
return 0;
|
|
@@ -2298,8 +2296,6 @@ static int patch_alc882(struct hda_codec *codec)
|
|
|
if (!spec->gen.no_analog && spec->gen.beep_nid)
|
|
|
set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT);
|
|
|
|
|
|
- codec->patch_ops = alc_patch_ops;
|
|
|
-
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
|
|
|
|
|
|
return 0;
|
|
@@ -2435,6 +2431,8 @@ static int patch_alc262(struct hda_codec *codec)
|
|
|
spec = codec->spec;
|
|
|
spec->gen.shared_mic_vref_pin = 0x18;
|
|
|
|
|
|
+ spec->shutup = alc_eapd_shutup;
|
|
|
+
|
|
|
#if 0
|
|
|
/* pshou 07/11/05 set a zero PCM sample to DAC when FIFO is
|
|
|
* under-run
|
|
@@ -2460,9 +2458,6 @@ static int patch_alc262(struct hda_codec *codec)
|
|
|
if (!spec->gen.no_analog && spec->gen.beep_nid)
|
|
|
set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT);
|
|
|
|
|
|
- codec->patch_ops = alc_patch_ops;
|
|
|
- spec->shutup = alc_eapd_shutup;
|
|
|
-
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
|
|
|
|
|
|
return 0;
|
|
@@ -2566,6 +2561,8 @@ static int patch_alc268(struct hda_codec *codec)
|
|
|
spec = codec->spec;
|
|
|
spec->gen.beep_nid = 0x01;
|
|
|
|
|
|
+ spec->shutup = alc_eapd_shutup;
|
|
|
+
|
|
|
snd_hda_pick_fixup(codec, alc268_fixup_models, alc268_fixup_tbl, alc268_fixups);
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
|
|
|
|
|
@@ -2587,9 +2584,6 @@ static int patch_alc268(struct hda_codec *codec)
|
|
|
(0 << AC_AMPCAP_MUTE_SHIFT));
|
|
|
}
|
|
|
|
|
|
- codec->patch_ops = alc_patch_ops;
|
|
|
- spec->shutup = alc_eapd_shutup;
|
|
|
-
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
|
|
|
|
|
|
return 0;
|
|
@@ -5672,6 +5666,12 @@ static int patch_alc269(struct hda_codec *codec)
|
|
|
if (codec->core.vendor_id != 0x10ec0292)
|
|
|
codec->power_save_node = 1;
|
|
|
|
|
|
+#ifdef CONFIG_PM
|
|
|
+ codec->patch_ops.suspend = alc269_suspend;
|
|
|
+ codec->patch_ops.resume = alc269_resume;
|
|
|
+#endif
|
|
|
+ spec->shutup = alc269_shutup;
|
|
|
+
|
|
|
snd_hda_pick_fixup(codec, alc269_fixup_models,
|
|
|
alc269_fixup_tbl, alc269_fixups);
|
|
|
snd_hda_pick_pin_fixup(codec, alc269_pin_fixup_tbl, alc269_fixups);
|
|
@@ -5768,15 +5768,6 @@ static int patch_alc269(struct hda_codec *codec)
|
|
|
if (!spec->gen.no_analog && spec->gen.beep_nid && spec->gen.mixer_nid)
|
|
|
set_beep_amp(spec, spec->gen.mixer_nid, 0x04, HDA_INPUT);
|
|
|
|
|
|
- codec->patch_ops = alc_patch_ops;
|
|
|
- codec->patch_ops.stream_pm = snd_hda_gen_stream_pm;
|
|
|
-#ifdef CONFIG_PM
|
|
|
- codec->patch_ops.suspend = alc269_suspend;
|
|
|
- codec->patch_ops.resume = alc269_resume;
|
|
|
-#endif
|
|
|
- if (!spec->shutup)
|
|
|
- spec->shutup = alc269_shutup;
|
|
|
-
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
|
|
|
|
|
|
return 0;
|
|
@@ -5892,6 +5883,10 @@ static int patch_alc861(struct hda_codec *codec)
|
|
|
spec = codec->spec;
|
|
|
spec->gen.beep_nid = 0x23;
|
|
|
|
|
|
+#ifdef CONFIG_PM
|
|
|
+ spec->power_hook = alc_power_eapd;
|
|
|
+#endif
|
|
|
+
|
|
|
snd_hda_pick_fixup(codec, NULL, alc861_fixup_tbl, alc861_fixups);
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
|
|
|
|
|
@@ -5903,11 +5898,6 @@ static int patch_alc861(struct hda_codec *codec)
|
|
|
if (!spec->gen.no_analog)
|
|
|
set_beep_amp(spec, 0x23, 0, HDA_OUTPUT);
|
|
|
|
|
|
- codec->patch_ops = alc_patch_ops;
|
|
|
-#ifdef CONFIG_PM
|
|
|
- spec->power_hook = alc_power_eapd;
|
|
|
-#endif
|
|
|
-
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
|
|
|
|
|
|
return 0;
|
|
@@ -5984,6 +5974,8 @@ static int patch_alc861vd(struct hda_codec *codec)
|
|
|
spec = codec->spec;
|
|
|
spec->gen.beep_nid = 0x23;
|
|
|
|
|
|
+ spec->shutup = alc_eapd_shutup;
|
|
|
+
|
|
|
snd_hda_pick_fixup(codec, NULL, alc861vd_fixup_tbl, alc861vd_fixups);
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
|
|
|
|
|
@@ -5995,10 +5987,6 @@ static int patch_alc861vd(struct hda_codec *codec)
|
|
|
if (!spec->gen.no_analog)
|
|
|
set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT);
|
|
|
|
|
|
- codec->patch_ops = alc_patch_ops;
|
|
|
-
|
|
|
- spec->shutup = alc_eapd_shutup;
|
|
|
-
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
|
|
|
|
|
|
return 0;
|
|
@@ -6599,6 +6587,8 @@ static int patch_alc662(struct hda_codec *codec)
|
|
|
|
|
|
spec = codec->spec;
|
|
|
|
|
|
+ spec->shutup = alc_eapd_shutup;
|
|
|
+
|
|
|
/* handle multiple HPs as is */
|
|
|
spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP;
|
|
|
|
|
@@ -6650,9 +6640,6 @@ static int patch_alc662(struct hda_codec *codec)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- codec->patch_ops = alc_patch_ops;
|
|
|
- spec->shutup = alc_eapd_shutup;
|
|
|
-
|
|
|
snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE);
|
|
|
|
|
|
return 0;
|
|
@@ -6689,8 +6676,6 @@ static int patch_alc680(struct hda_codec *codec)
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
- codec->patch_ops = alc_patch_ops;
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
|