Lines Matching refs:spec
177 struct alc_spec *spec = codec->spec; in alc_get_coef0() local
179 if (!spec->coef0) in alc_get_coef0()
180 spec->coef0 = alc_read_coef_idx(codec, 0); in alc_get_coef0()
181 return spec->coef0; in alc_get_coef0()
215 static void add_mixer(struct alc_spec *spec, const struct snd_kcontrol_new *mix) in add_mixer() argument
217 if (snd_BUG_ON(spec->num_mixers >= ARRAY_SIZE(spec->mixers))) in add_mixer()
219 spec->mixers[spec->num_mixers++] = mix; in add_mixer()
254 struct alc_spec *spec = codec->spec; in alc_fix_pll() local
256 if (spec->pll_nid) in alc_fix_pll()
257 alc_update_coefex_idx(codec, spec->pll_nid, spec->pll_coef_idx, in alc_fix_pll()
258 1 << spec->pll_coef_bit, 0); in alc_fix_pll()
264 struct alc_spec *spec = codec->spec; in alc_fix_pll_init() local
265 spec->pll_nid = nid; in alc_fix_pll_init()
266 spec->pll_coef_idx = coef_idx; in alc_fix_pll_init()
267 spec->pll_coef_bit = coef_bit; in alc_fix_pll_init()
427 struct alc_spec *spec = codec->spec; in alc_eapd_shutup() local
430 if (!spec->no_depop_delay) in alc_eapd_shutup()
482 struct alc_spec *spec = codec->spec; in alc_fixup_sku_ignore() local
484 spec->cdefine.fixup = 1; in alc_fixup_sku_ignore()
485 spec->cdefine.sku_cfg = ALC_FIXUP_SKU_IGNORE; in alc_fixup_sku_ignore()
492 struct alc_spec *spec = codec->spec; in alc_fixup_no_depop_delay() local
495 spec->no_depop_delay = 1; in alc_fixup_no_depop_delay()
504 struct alc_spec *spec = codec->spec; in alc_auto_parse_customize_define() local
506 spec->cdefine.enable_pcbeep = 1; /* assume always enabled */ in alc_auto_parse_customize_define()
508 if (spec->cdefine.fixup) { in alc_auto_parse_customize_define()
509 ass = spec->cdefine.sku_cfg; in alc_auto_parse_customize_define()
541 spec->cdefine.port_connectivity = ass >> 30; in alc_auto_parse_customize_define()
542 spec->cdefine.enable_pcbeep = (ass & 0x100000) >> 20; in alc_auto_parse_customize_define()
543 spec->cdefine.check_sum = (ass >> 16) & 0xf; in alc_auto_parse_customize_define()
544 spec->cdefine.customization = ass >> 8; in alc_auto_parse_customize_define()
546 spec->cdefine.sku_cfg = ass; in alc_auto_parse_customize_define()
547 spec->cdefine.external_amp = (ass & 0x38) >> 3; in alc_auto_parse_customize_define()
548 spec->cdefine.platform_type = (ass & 0x4) >> 2; in alc_auto_parse_customize_define()
549 spec->cdefine.swap = (ass & 0x2) >> 1; in alc_auto_parse_customize_define()
550 spec->cdefine.override = ass & 0x1; in alc_auto_parse_customize_define()
553 nid, spec->cdefine.sku_cfg); in alc_auto_parse_customize_define()
555 spec->cdefine.port_connectivity); in alc_auto_parse_customize_define()
556 codec_dbg(codec, "SKU: enable_pcbeep=0x%x\n", spec->cdefine.enable_pcbeep); in alc_auto_parse_customize_define()
557 codec_dbg(codec, "SKU: check_sum=0x%08x\n", spec->cdefine.check_sum); in alc_auto_parse_customize_define()
558 codec_dbg(codec, "SKU: customization=0x%08x\n", spec->cdefine.customization); in alc_auto_parse_customize_define()
559 codec_dbg(codec, "SKU: external_amp=0x%x\n", spec->cdefine.external_amp); in alc_auto_parse_customize_define()
560 codec_dbg(codec, "SKU: platform_type=0x%x\n", spec->cdefine.platform_type); in alc_auto_parse_customize_define()
561 codec_dbg(codec, "SKU: swap=0x%x\n", spec->cdefine.swap); in alc_auto_parse_customize_define()
562 codec_dbg(codec, "SKU: override=0x%x\n", spec->cdefine.override); in alc_auto_parse_customize_define()
595 struct alc_spec *spec = codec->spec; in alc_subsystem_id() local
597 if (spec->cdefine.fixup) { in alc_subsystem_id()
598 ass = spec->cdefine.sku_cfg; in alc_subsystem_id()
651 spec->init_amp = ALC_INIT_GPIO1; in alc_subsystem_id()
654 spec->init_amp = ALC_INIT_GPIO2; in alc_subsystem_id()
657 spec->init_amp = ALC_INIT_GPIO3; in alc_subsystem_id()
661 spec->init_amp = ALC_INIT_DEFAULT; in alc_subsystem_id()
677 if (!spec->gen.autocfg.hp_pins[0] && in alc_subsystem_id()
678 !(spec->gen.autocfg.line_out_pins[0] && in alc_subsystem_id()
679 spec->gen.autocfg.line_out_type == AUTO_PIN_HP_OUT)) { in alc_subsystem_id()
683 if (found_in_nid_list(nid, spec->gen.autocfg.line_out_pins, in alc_subsystem_id()
684 spec->gen.autocfg.line_outs)) in alc_subsystem_id()
686 spec->gen.autocfg.hp_pins[0] = nid; in alc_subsystem_id()
696 struct alc_spec *spec = codec->spec; in alc_ssid_check() local
699 spec->init_amp = ALC_INIT_DEFAULT; in alc_ssid_check()
709 struct alc_spec *spec = codec->spec; in alc_fixup_inv_dmic() local
711 spec->gen.inv_dmic_split = 1; in alc_fixup_inv_dmic()
726 struct alc_spec *spec = codec->spec; in alc_build_controls() local
733 for (i = 0; i < spec->num_mixers; i++) { in alc_build_controls()
734 err = snd_hda_add_new_ctls(codec, spec->mixers[i]); in alc_build_controls()
741 if (spec->beep_amp) { in alc_build_controls()
748 kctl->private_value = spec->beep_amp; in alc_build_controls()
767 struct alc_spec *spec = codec->spec; in alc_init() local
769 if (spec->init_hook) in alc_init()
770 spec->init_hook(codec); in alc_init()
773 alc_auto_init_amp(codec, spec->init_amp); in alc_init()
784 struct alc_spec *spec = codec->spec; in alc_shutup() local
786 if (spec && spec->shutup) in alc_shutup()
787 spec->shutup(codec); in alc_shutup()
794 struct alc_spec *spec = codec->spec; in alc_reboot_notify() local
796 if (spec && spec->reboot_notify) in alc_reboot_notify()
797 spec->reboot_notify(codec); in alc_reboot_notify()
821 struct alc_spec *spec = codec->spec; in alc_suspend() local
823 if (spec && spec->power_hook) in alc_suspend()
824 spec->power_hook(codec); in alc_suspend()
832 struct alc_spec *spec = codec->spec; in alc_resume() local
834 if (!spec->no_depop_delay) in alc_resume()
961 #define set_beep_amp(spec, nid, idx, dir) \ argument
962 ((spec)->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 3, idx, dir))
979 struct alc_spec *spec = codec->spec; in has_cdefine_beep() local
984 return spec->cdefine.enable_pcbeep; in has_cdefine_beep()
987 #define set_beep_amp(spec, nid, idx, dir) /* NOP */ argument
999 struct alc_spec *spec = codec->spec; in alc_parse_auto_config() local
1000 struct auto_pin_cfg *cfg = &spec->gen.autocfg; in alc_parse_auto_config()
1004 spec->parse_flags); in alc_parse_auto_config()
1021 struct alc_spec *spec = kzalloc(sizeof(*spec), GFP_KERNEL); in alc_alloc_spec() local
1024 if (!spec) in alc_alloc_spec()
1026 codec->spec = spec; in alc_alloc_spec()
1027 snd_hda_gen_spec_init(&spec->gen); in alc_alloc_spec()
1028 spec->gen.mixer_nid = mixer_nid; in alc_alloc_spec()
1029 spec->gen.own_eapd_ctl = 1; in alc_alloc_spec()
1037 kfree(spec); in alc_alloc_spec()
1467 struct alc_spec *spec; in patch_alc880() local
1474 spec = codec->spec; in patch_alc880()
1475 spec->gen.need_dac_fix = 1; in patch_alc880()
1476 spec->gen.beep_nid = 0x01; in patch_alc880()
1489 if (!spec->gen.no_analog) in patch_alc880()
1490 set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc880()
1531 struct alc_spec *spec = codec->spec; in alc260_gpio1_automute() local
1533 spec->gen.hp_jack_present); in alc260_gpio1_automute()
1539 struct alc_spec *spec = codec->spec; in alc260_fixup_gpio1_toggle() local
1544 spec->gen.automute_hook = alc260_gpio1_automute; in alc260_fixup_gpio1_toggle()
1545 spec->gen.detect_hp = 1; in alc260_fixup_gpio1_toggle()
1546 spec->gen.automute_speaker = 1; in alc260_fixup_gpio1_toggle()
1547 spec->gen.autocfg.hp_pins[0] = 0x0f; /* copy it for automute */ in alc260_fixup_gpio1_toggle()
1557 struct alc_spec *spec = codec->spec; in alc260_fixup_kn1() local
1579 spec->init_amp = ALC_INIT_NONE; in alc260_fixup_kn1()
1587 struct alc_spec *spec = codec->spec; in alc260_fixup_fsc_s7020() local
1589 spec->init_amp = ALC_INIT_NONE; in alc260_fixup_fsc_s7020()
1595 struct alc_spec *spec = codec->spec; in alc260_fixup_fsc_s7020_jwse() local
1597 spec->gen.add_jack_modes = 1; in alc260_fixup_fsc_s7020_jwse()
1598 spec->gen.hp_mic = 1; in alc260_fixup_fsc_s7020_jwse()
1713 struct alc_spec *spec; in patch_alc260() local
1720 spec = codec->spec; in patch_alc260()
1725 spec->gen.prefer_hp_amp = 1; in patch_alc260()
1726 spec->gen.beep_nid = 0x01; in patch_alc260()
1728 spec->shutup = alc_eapd_shutup; in patch_alc260()
1739 if (!spec->gen.no_analog) in patch_alc260()
1740 set_beep_amp(spec, 0x07, 0x05, HDA_INPUT); in patch_alc260()
1882 struct alc_spec *spec = codec->spec; in alc889_fixup_mbp_vref() local
1895 spec->gen.keep_vref_in_automute = 1; in alc889_fixup_mbp_vref()
1903 struct alc_spec *spec = codec->spec; in alc889_fixup_mac_pins() local
1912 spec->gen.keep_vref_in_automute = 1; in alc889_fixup_mac_pins()
1952 struct alc_spec *spec = codec->spec; in alc882_fixup_no_primary_hp() local
1954 spec->gen.no_primary_hp = 1; in alc882_fixup_no_primary_hp()
1955 spec->gen.no_multi_io = 1; in alc882_fixup_no_primary_hp()
2298 struct alc_spec *spec; in patch_alc882() local
2305 spec = codec->spec; in patch_alc882()
2325 spec->gen.beep_nid = 0x01; in patch_alc882()
2332 if (!spec->gen.no_analog && spec->gen.beep_nid) in patch_alc882()
2333 set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc882()
2460 struct alc_spec *spec; in patch_alc262() local
2467 spec = codec->spec; in patch_alc262()
2468 spec->gen.shared_mic_vref_pin = 0x18; in patch_alc262()
2470 spec->shutup = alc_eapd_shutup; in patch_alc262()
2487 spec->gen.beep_nid = 0x01; in patch_alc262()
2494 if (!spec->gen.no_analog && spec->gen.beep_nid) in patch_alc262()
2495 set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc262()
2589 struct alc_spec *spec; in patch_alc268() local
2597 spec = codec->spec; in patch_alc268()
2598 spec->gen.beep_nid = 0x01; in patch_alc268()
2600 spec->shutup = alc_eapd_shutup; in patch_alc268()
2610 if (err > 0 && !spec->gen.no_analog && in patch_alc268()
2611 spec->gen.autocfg.speaker_pins[0] != 0x1d) { in patch_alc268()
2612 add_mixer(spec, alc268_beep_mixer); in patch_alc268()
2672 struct alc_spec *spec = codec->spec; in alc269_parse_auto_config() local
2675 switch (spec->codec_variant) { in alc269_parse_auto_config()
2732 struct alc_spec *spec = codec->spec; in alc269_shutup() local
2734 if (spec->codec_variant == ALC269_TYPE_ALC269VB) in alc269_shutup()
2736 if (spec->codec_variant == ALC269_TYPE_ALC269VB && in alc269_shutup()
2783 struct alc_spec *spec = codec->spec; in alc282_init() local
2784 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc282_init()
2820 struct alc_spec *spec = codec->spec; in alc282_shutup() local
2821 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc282_shutup()
2898 struct alc_spec *spec = codec->spec; in alc283_init() local
2899 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc283_init()
2902 if (!spec->gen.autocfg.hp_outs) { in alc283_init()
2903 if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT) in alc283_init()
2904 hp_pin = spec->gen.autocfg.line_out_pins[0]; in alc283_init()
2939 struct alc_spec *spec = codec->spec; in alc283_shutup() local
2940 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc283_shutup()
2943 if (!spec->gen.autocfg.hp_outs) { in alc283_shutup()
2944 if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT) in alc283_shutup()
2945 hp_pin = spec->gen.autocfg.line_out_pins[0]; in alc283_shutup()
3073 struct alc_spec *spec = codec->spec; in alc269_suspend() local
3075 if (spec->has_alc5505_dsp) in alc269_suspend()
3082 struct alc_spec *spec = codec->spec; in alc269_resume() local
3084 if (spec->codec_variant == ALC269_TYPE_ALC269VB) in alc269_resume()
3086 if (spec->codec_variant == ALC269_TYPE_ALC269VB && in alc269_resume()
3093 if (spec->codec_variant == ALC269_TYPE_ALC269VB) in alc269_resume()
3095 if (spec->codec_variant == ALC269_TYPE_ALC269VB && in alc269_resume()
3107 if (spec->gpio_led) in alc269_resume()
3109 spec->gpio_led); in alc269_resume()
3111 if (spec->has_alc5505_dsp) in alc269_resume()
3121 struct alc_spec *spec = codec->spec; in alc269_fixup_pincfg_no_hp_to_lineout() local
3124 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; in alc269_fixup_pincfg_no_hp_to_lineout()
3137 struct alc_spec *spec = codec->spec; in alc269_fixup_headset_mic() local
3140 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc269_fixup_headset_mic()
3164 struct alc_spec *spec = codec->spec; in alc269_fixup_pcm_44k() local
3172 spec->gen.stream_analog_playback = &alc269_44k_pcm_analog_playback; in alc269_fixup_pcm_44k()
3173 spec->gen.stream_analog_capture = &alc269_44k_pcm_analog_capture; in alc269_fixup_pcm_44k()
3199 struct alc_spec *spec = codec->spec; in alc269_fixup_quanta_mute() local
3202 spec->gen.automute_hook = alc269_quanta_automute; in alc269_fixup_quanta_mute()
3208 struct alc_spec *spec = codec->spec; in alc269_x101_hp_automute_hook() local
3213 vref = spec->gen.hp_jack_present ? PIN_VREF80 : 0; in alc269_x101_hp_automute_hook()
3225 struct alc_spec *spec = codec->spec; in alc269_fixup_x101_headset_mic() local
3227 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc269_fixup_x101_headset_mic()
3228 spec->gen.hp_automute_hook = alc269_x101_hp_automute_hook; in alc269_fixup_x101_headset_mic()
3237 struct alc_spec *spec = codec->spec; in alc269_fixup_mic_mute_hook() local
3240 if (spec->mute_led_polarity) in alc269_fixup_mic_mute_hook()
3242 pinval = snd_hda_codec_get_pin_target(codec, spec->mute_led_nid); in alc269_fixup_mic_mute_hook()
3245 if (spec->mute_led_nid) in alc269_fixup_mic_mute_hook()
3246 snd_hda_set_pin_ctl_cache(codec, spec->mute_led_nid, pinval); in alc269_fixup_mic_mute_hook()
3254 struct alc_spec *spec = codec->spec; in led_power_filter() local
3257 (nid != spec->mute_led_nid && nid != spec->cap_mute_led_nid)) in led_power_filter()
3270 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_mute_led() local
3282 spec->mute_led_polarity = pol; in alc269_fixup_hp_mute_led()
3283 spec->mute_led_nid = pin - 0x0a + 0x18; in alc269_fixup_hp_mute_led()
3284 spec->gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; in alc269_fixup_hp_mute_led()
3285 spec->gen.vmaster_mute_enum = 1; in alc269_fixup_hp_mute_led()
3288 "Detected mute LED for %x:%d\n", spec->mute_led_nid, in alc269_fixup_hp_mute_led()
3289 spec->mute_led_polarity); in alc269_fixup_hp_mute_led()
3297 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_mute_led_mic1() local
3299 spec->mute_led_polarity = 0; in alc269_fixup_hp_mute_led_mic1()
3300 spec->mute_led_nid = 0x18; in alc269_fixup_hp_mute_led_mic1()
3301 spec->gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; in alc269_fixup_hp_mute_led_mic1()
3302 spec->gen.vmaster_mute_enum = 1; in alc269_fixup_hp_mute_led_mic1()
3310 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_mute_led_mic2() local
3312 spec->mute_led_polarity = 0; in alc269_fixup_hp_mute_led_mic2()
3313 spec->mute_led_nid = 0x19; in alc269_fixup_hp_mute_led_mic2()
3314 spec->gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; in alc269_fixup_hp_mute_led_mic2()
3315 spec->gen.vmaster_mute_enum = 1; in alc269_fixup_hp_mute_led_mic2()
3324 struct alc_spec *spec = codec->spec; in alc_update_gpio_led() local
3325 unsigned int oldval = spec->gpio_led; in alc_update_gpio_led()
3327 if (spec->mute_led_polarity) in alc_update_gpio_led()
3331 spec->gpio_led &= ~mask; in alc_update_gpio_led()
3333 spec->gpio_led |= mask; in alc_update_gpio_led()
3334 if (spec->gpio_led != oldval) in alc_update_gpio_led()
3336 spec->gpio_led); in alc_update_gpio_led()
3343 struct alc_spec *spec = codec->spec; in alc_fixup_gpio_mute_hook() local
3345 alc_update_gpio_led(codec, spec->gpio_mute_led_mask, enabled); in alc_fixup_gpio_mute_hook()
3353 struct alc_spec *spec = codec->spec; in alc_fixup_gpio_mic_mute_hook() local
3356 alc_update_gpio_led(codec, spec->gpio_mic_led_mask, in alc_fixup_gpio_mic_mute_hook()
3364 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_gpio_led() local
3372 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc269_fixup_hp_gpio_led()
3373 spec->gen.cap_sync_hook = alc_fixup_gpio_mic_mute_hook; in alc269_fixup_hp_gpio_led()
3374 spec->gpio_led = 0; in alc269_fixup_hp_gpio_led()
3375 spec->mute_led_polarity = 0; in alc269_fixup_hp_gpio_led()
3376 spec->gpio_mute_led_mask = 0x08; in alc269_fixup_hp_gpio_led()
3377 spec->gpio_mic_led_mask = 0x10; in alc269_fixup_hp_gpio_led()
3385 struct alc_spec *spec = codec->spec; in alc286_fixup_hp_gpio_led() local
3393 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc286_fixup_hp_gpio_led()
3394 spec->gen.cap_sync_hook = alc_fixup_gpio_mic_mute_hook; in alc286_fixup_hp_gpio_led()
3395 spec->gpio_led = 0; in alc286_fixup_hp_gpio_led()
3396 spec->mute_led_polarity = 0; in alc286_fixup_hp_gpio_led()
3397 spec->gpio_mute_led_mask = 0x02; in alc286_fixup_hp_gpio_led()
3398 spec->gpio_mic_led_mask = 0x20; in alc286_fixup_hp_gpio_led()
3408 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_cap_mic_mute_hook() local
3411 pinval = snd_hda_codec_get_pin_target(codec, spec->cap_mute_led_nid); in alc269_fixup_hp_cap_mic_mute_hook()
3425 if (spec->cap_mute_led_nid) in alc269_fixup_hp_cap_mic_mute_hook()
3426 snd_hda_set_pin_ctl_cache(codec, spec->cap_mute_led_nid, pinval); in alc269_fixup_hp_cap_mic_mute_hook()
3432 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_gpio_mic1_led() local
3440 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc269_fixup_hp_gpio_mic1_led()
3441 spec->gen.cap_sync_hook = alc269_fixup_hp_cap_mic_mute_hook; in alc269_fixup_hp_gpio_mic1_led()
3442 spec->gpio_led = 0; in alc269_fixup_hp_gpio_mic1_led()
3443 spec->mute_led_polarity = 0; in alc269_fixup_hp_gpio_mic1_led()
3444 spec->gpio_mute_led_mask = 0x08; in alc269_fixup_hp_gpio_mic1_led()
3445 spec->cap_mute_led_nid = 0x18; in alc269_fixup_hp_gpio_mic1_led()
3455 struct alc_spec *spec = codec->spec; in alc280_fixup_hp_gpio4() local
3463 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc280_fixup_hp_gpio4()
3464 spec->gen.cap_sync_hook = alc269_fixup_hp_cap_mic_mute_hook; in alc280_fixup_hp_gpio4()
3465 spec->gpio_led = 0; in alc280_fixup_hp_gpio4()
3466 spec->mute_led_polarity = 0; in alc280_fixup_hp_gpio4()
3467 spec->gpio_mute_led_mask = 0x08; in alc280_fixup_hp_gpio4()
3468 spec->cap_mute_led_nid = 0x18; in alc280_fixup_hp_gpio4()
3477 struct alc_spec *spec = codec->spec; in gpio2_mic_hotkey_event() local
3481 input_report_key(spec->kb_dev, spec->alc_mute_keycode_map[ALC_KEY_MICMUTE_INDEX], 1); in gpio2_mic_hotkey_event()
3482 input_sync(spec->kb_dev); in gpio2_mic_hotkey_event()
3483 input_report_key(spec->kb_dev, spec->alc_mute_keycode_map[ALC_KEY_MICMUTE_INDEX], 0); in gpio2_mic_hotkey_event()
3484 input_sync(spec->kb_dev); in gpio2_mic_hotkey_event()
3489 struct alc_spec *spec = codec->spec; in alc_register_micmute_input_device() local
3492 spec->kb_dev = input_allocate_device(); in alc_register_micmute_input_device()
3493 if (!spec->kb_dev) { in alc_register_micmute_input_device()
3498 spec->alc_mute_keycode_map[ALC_KEY_MICMUTE_INDEX] = KEY_MICMUTE; in alc_register_micmute_input_device()
3500 spec->kb_dev->name = "Microphone Mute Button"; in alc_register_micmute_input_device()
3501 spec->kb_dev->evbit[0] = BIT_MASK(EV_KEY); in alc_register_micmute_input_device()
3502 spec->kb_dev->keycodesize = sizeof(spec->alc_mute_keycode_map[0]); in alc_register_micmute_input_device()
3503 spec->kb_dev->keycodemax = ARRAY_SIZE(spec->alc_mute_keycode_map); in alc_register_micmute_input_device()
3504 spec->kb_dev->keycode = spec->alc_mute_keycode_map; in alc_register_micmute_input_device()
3505 for (i = 0; i < ARRAY_SIZE(spec->alc_mute_keycode_map); i++) in alc_register_micmute_input_device()
3506 set_bit(spec->alc_mute_keycode_map[i], spec->kb_dev->keybit); in alc_register_micmute_input_device()
3508 if (input_register_device(spec->kb_dev)) { in alc_register_micmute_input_device()
3510 input_free_device(spec->kb_dev); in alc_register_micmute_input_device()
3511 spec->kb_dev = NULL; in alc_register_micmute_input_device()
3532 struct alc_spec *spec = codec->spec; in alc280_fixup_hp_gpio2_mic_hotkey() local
3544 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc280_fixup_hp_gpio2_mic_hotkey()
3545 spec->gen.cap_sync_hook = alc_fixup_gpio_mic_mute_hook; in alc280_fixup_hp_gpio2_mic_hotkey()
3546 spec->gpio_led = 0; in alc280_fixup_hp_gpio2_mic_hotkey()
3547 spec->mute_led_polarity = 0; in alc280_fixup_hp_gpio2_mic_hotkey()
3548 spec->gpio_mute_led_mask = 0x08; in alc280_fixup_hp_gpio2_mic_hotkey()
3549 spec->gpio_mic_led_mask = 0x10; in alc280_fixup_hp_gpio2_mic_hotkey()
3553 if (!spec->kb_dev) in alc280_fixup_hp_gpio2_mic_hotkey()
3558 spec->init_amp = ALC_INIT_DEFAULT; in alc280_fixup_hp_gpio2_mic_hotkey()
3561 input_unregister_device(spec->kb_dev); in alc280_fixup_hp_gpio2_mic_hotkey()
3562 spec->kb_dev = NULL; in alc280_fixup_hp_gpio2_mic_hotkey()
3577 struct alc_spec *spec = codec->spec; in alc233_fixup_lenovo_line2_mic_hotkey() local
3587 spec->gen.cap_sync_hook = alc_fixup_gpio_mic_mute_hook; in alc233_fixup_lenovo_line2_mic_hotkey()
3588 spec->gpio_led = 0; in alc233_fixup_lenovo_line2_mic_hotkey()
3589 spec->mute_led_polarity = 0; in alc233_fixup_lenovo_line2_mic_hotkey()
3590 spec->gpio_mic_led_mask = 0x04; in alc233_fixup_lenovo_line2_mic_hotkey()
3594 if (!spec->kb_dev) in alc233_fixup_lenovo_line2_mic_hotkey()
3599 spec->init_amp = ALC_INIT_DEFAULT; in alc233_fixup_lenovo_line2_mic_hotkey()
3602 input_unregister_device(spec->kb_dev); in alc233_fixup_lenovo_line2_mic_hotkey()
3603 spec->kb_dev = NULL; in alc233_fixup_lenovo_line2_mic_hotkey()
3610 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_line1_mic1_led() local
3613 spec->gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; in alc269_fixup_hp_line1_mic1_led()
3614 spec->gen.cap_sync_hook = alc269_fixup_hp_cap_mic_mute_hook; in alc269_fixup_hp_line1_mic1_led()
3615 spec->mute_led_polarity = 0; in alc269_fixup_hp_line1_mic1_led()
3616 spec->mute_led_nid = 0x1a; in alc269_fixup_hp_line1_mic1_led()
3617 spec->cap_mute_led_nid = 0x18; in alc269_fixup_hp_line1_mic1_led()
3618 spec->gen.vmaster_mute_enum = 1; in alc269_fixup_hp_line1_mic1_led()
4090 struct alc_spec *spec = codec->spec; in alc_determine_headset_type() local
4173 spec->current_headset_type = is_ctia ? ALC_HEADSET_TYPE_CTIA : ALC_HEADSET_TYPE_OMTP; in alc_determine_headset_type()
4178 struct alc_spec *spec = codec->spec; in alc_update_headset_mode() local
4180 hda_nid_t mux_pin = spec->gen.imux_pins[spec->gen.cur_mux[0]]; in alc_update_headset_mode()
4181 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc_update_headset_mode()
4187 else if (mux_pin == spec->headset_mic_pin) in alc_update_headset_mode()
4189 else if (mux_pin == spec->headphone_mic_pin) in alc_update_headset_mode()
4194 if (new_headset_mode == spec->current_headset_mode) { in alc_update_headset_mode()
4202 spec->gen.hp_jack_present = false; in alc_update_headset_mode()
4205 if (spec->current_headset_type == ALC_HEADSET_TYPE_UNKNOWN) in alc_update_headset_mode()
4207 if (spec->current_headset_type == ALC_HEADSET_TYPE_CTIA) in alc_update_headset_mode()
4209 else if (spec->current_headset_type == ALC_HEADSET_TYPE_OMTP) in alc_update_headset_mode()
4211 spec->gen.hp_jack_present = true; in alc_update_headset_mode()
4214 alc_headset_mode_mic_in(codec, hp_pin, spec->headphone_mic_pin); in alc_update_headset_mode()
4215 spec->gen.hp_jack_present = false; in alc_update_headset_mode()
4219 spec->gen.hp_jack_present = true; in alc_update_headset_mode()
4225 if (spec->headphone_mic_pin && spec->headphone_mic_pin != hp_pin) in alc_update_headset_mode()
4226 snd_hda_set_pin_ctl_cache(codec, spec->headphone_mic_pin, in alc_update_headset_mode()
4229 spec->current_headset_mode = new_headset_mode; in alc_update_headset_mode()
4244 struct alc_spec *spec = codec->spec; in alc_update_headset_jack_cb() local
4245 spec->current_headset_type = ALC_HEADSET_TYPE_UNKNOWN; in alc_update_headset_jack_cb()
4252 struct alc_spec *spec = codec->spec; in alc_probe_headset_mode() local
4253 struct auto_pin_cfg *cfg = &spec->gen.autocfg; in alc_probe_headset_mode()
4257 if (cfg->inputs[i].is_headset_mic && !spec->headset_mic_pin) in alc_probe_headset_mode()
4258 spec->headset_mic_pin = cfg->inputs[i].pin; in alc_probe_headset_mode()
4259 if (cfg->inputs[i].is_headphone_mic && !spec->headphone_mic_pin) in alc_probe_headset_mode()
4260 spec->headphone_mic_pin = cfg->inputs[i].pin; in alc_probe_headset_mode()
4263 spec->gen.cap_sync_hook = alc_update_headset_mode_hook; in alc_probe_headset_mode()
4264 spec->gen.automute_hook = alc_update_headset_mode; in alc_probe_headset_mode()
4265 spec->gen.hp_automute_hook = alc_update_headset_jack_cb; in alc_probe_headset_mode()
4271 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode() local
4275 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC | HDA_PINCFG_HEADPHONE_MIC; in alc_fixup_headset_mode()
4281 spec->current_headset_mode = 0; in alc_fixup_headset_mode()
4291 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode_no_hp_mic() local
4292 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc_fixup_headset_mode_no_hp_mic()
4341 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode_alc255_no_hp_mic() local
4342 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc_fixup_headset_mode_alc255_no_hp_mic()
4352 struct alc_spec *spec = codec->spec; in alc288_update_headset_jack_cb() local
4357 present = spec->gen.hp_jack_present ? 0x40 : 0; in alc288_update_headset_jack_cb()
4367 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode_dell_alc288() local
4368 spec->gen.hp_automute_hook = alc288_update_headset_jack_cb; in alc_fixup_headset_mode_dell_alc288()
4376 struct alc_spec *spec = codec->spec; in alc_fixup_auto_mute_via_amp() local
4377 spec->gen.auto_mute_via_amp = 1; in alc_fixup_auto_mute_via_amp()
4389 struct alc_spec *spec = codec->spec; in alc_fixup_no_shutup() local
4390 spec->shutup = alc_no_shutup; in alc_fixup_no_shutup()
4398 struct alc_spec *spec = codec->spec; in alc_fixup_disable_aamix() local
4400 spec->gen.mixer_nid = 0; in alc_fixup_disable_aamix()
4413 struct alc_spec *spec = codec->spec; in alc_fixup_tpt440_dock() local
4416 spec->shutup = alc_no_shutup; /* reduce click noise */ in alc_fixup_tpt440_dock()
4417 spec->reboot_notify = alc_d3_at_reboot; /* reduce noise */ in alc_fixup_tpt440_dock()
4418 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; in alc_fixup_tpt440_dock()
4426 struct alc_spec *spec = codec->spec; in alc_shutup_dell_xps13() local
4427 int hp_pin = spec->gen.autocfg.hp_pins[0]; in alc_shutup_dell_xps13()
4438 struct alc_spec *spec = codec->spec; in alc_fixup_dell_xps13() local
4439 struct hda_input_mux *imux = &spec->gen.input_mux; in alc_fixup_dell_xps13()
4450 spec->shutup = alc_shutup_dell_xps13; in alc_fixup_dell_xps13()
4454 if (spec->gen.imux_pins[i] == 0x12) { in alc_fixup_dell_xps13()
4455 spec->gen.cur_mux[0] = i; in alc_fixup_dell_xps13()
4466 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode_alc662() local
4469 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc_fixup_headset_mode_alc662()
4470 spec->gen.hp_mic = 1; /* Mic-in is same pin as headphone */ in alc_fixup_headset_mode_alc662()
4494 struct alc_spec *spec = codec->spec; in find_ext_mic_pin() local
4495 struct auto_pin_cfg *cfg = &spec->gen.autocfg; in find_ext_mic_pin()
4517 struct alc_spec *spec = codec->spec; in alc271_hp_gate_mic_jack() local
4521 int hp_pin = spec->gen.autocfg.hp_pins[0]; in alc271_hp_gate_mic_jack()
4533 struct alc_spec *spec = codec->spec; in alc269_fixup_limit_int_mic_boost() local
4534 struct auto_pin_cfg *cfg = &spec->gen.autocfg; in alc269_fixup_limit_int_mic_boost()
4564 struct alc_spec *spec = codec->spec; in alc283_hp_automute_hook() local
4570 vref = spec->gen.hp_jack_present ? PIN_VREF80 : 0; in alc283_hp_automute_hook()
4580 struct alc_spec *spec = codec->spec; in alc283_fixup_chromebook() local
4586 spec->gen.mixer_nid = 0; in alc283_fixup_chromebook()
4601 struct alc_spec *spec = codec->spec; in alc283_fixup_sense_combo_jack() local
4605 spec->gen.hp_automute_hook = alc283_hp_automute_hook; in alc283_fixup_sense_combo_jack()
4618 struct alc_spec *spec = codec->spec; in asus_tx300_automute() local
4621 spec->gen.mute_bits |= (1ULL << 0x14); in asus_tx300_automute()
4627 struct alc_spec *spec = codec->spec; in alc282_fixup_asus_tx300() local
4645 spec->gen.auto_mute_via_amp = 1; in alc282_fixup_asus_tx300()
4646 spec->gen.automute_hook = asus_tx300_automute; in alc282_fixup_asus_tx300()
4681 struct alc_spec *spec = codec->spec; in alc280_hp_gpio4_automute_hook() local
4685 alc_update_gpio_led(codec, 0x10, !spec->gen.hp_jack_present); in alc280_hp_gpio4_automute_hook()
4698 struct alc_spec *spec = codec->spec; in alc280_fixup_hp_9480m() local
4709 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc280_fixup_hp_9480m()
4710 spec->gen.hp_automute_hook = alc280_hp_gpio4_automute_hook; in alc280_fixup_hp_9480m()
4713 spec->gpio_led = 0; in alc280_fixup_hp_9480m()
4718 spec->mute_led_polarity = 0; in alc280_fixup_hp_9480m()
4719 spec->gpio_mute_led_mask = 0x08; in alc280_fixup_hp_9480m()
5959 struct alc_spec *spec = codec->spec; in alc269_fill_coef() local
5962 if (spec->codec_variant != ALC269_TYPE_ALC269VB) in alc269_fill_coef()
6001 struct alc_spec *spec; in patch_alc269() local
6008 spec = codec->spec; in patch_alc269()
6009 spec->gen.shared_mic_vref_pin = 0x18; in patch_alc269()
6016 spec->shutup = alc269_shutup; in patch_alc269()
6028 spec->gen.beep_nid = 0x01; in patch_alc269()
6032 spec->codec_variant = ALC269_TYPE_ALC269VA; in patch_alc269()
6037 spec->cdefine.platform_type == 1) in patch_alc269()
6039 spec->codec_variant = ALC269_TYPE_ALC269VB; in patch_alc269()
6046 spec->codec_variant = ALC269_TYPE_ALC269VC; in patch_alc269()
6049 spec->codec_variant = ALC269_TYPE_ALC269VD; in patch_alc269()
6056 spec->init_hook = alc269_fill_coef; in patch_alc269()
6062 spec->codec_variant = ALC269_TYPE_ALC280; in patch_alc269()
6065 spec->codec_variant = ALC269_TYPE_ALC282; in patch_alc269()
6066 spec->shutup = alc282_shutup; in patch_alc269()
6067 spec->init_hook = alc282_init; in patch_alc269()
6071 spec->codec_variant = ALC269_TYPE_ALC283; in patch_alc269()
6072 spec->shutup = alc283_shutup; in patch_alc269()
6073 spec->init_hook = alc283_init; in patch_alc269()
6077 spec->codec_variant = ALC269_TYPE_ALC284; in patch_alc269()
6081 spec->codec_variant = ALC269_TYPE_ALC285; in patch_alc269()
6085 spec->codec_variant = ALC269_TYPE_ALC286; in patch_alc269()
6086 spec->shutup = alc286_shutup; in patch_alc269()
6089 spec->codec_variant = ALC269_TYPE_ALC298; in patch_alc269()
6092 spec->codec_variant = ALC269_TYPE_ALC255; in patch_alc269()
6095 spec->codec_variant = ALC269_TYPE_ALC256; in patch_alc269()
6096 spec->gen.mixer_nid = 0; /* ALC256 does not have any loopback mixer path */ in patch_alc269()
6101 spec->codec_variant = ALC269_TYPE_ALC225; in patch_alc269()
6106 spec->codec_variant = ALC269_TYPE_ALC294; in patch_alc269()
6111 spec->codec_variant = ALC269_TYPE_ALC700; in patch_alc269()
6112 spec->gen.mixer_nid = 0; /* ALC700 does not have any loopback mixer path */ in patch_alc269()
6119 spec->has_alc5505_dsp = 1; in patch_alc269()
6120 spec->init_hook = alc5505_dsp_init; in patch_alc269()
6128 if (!spec->gen.no_analog && spec->gen.beep_nid && spec->gen.mixer_nid) in patch_alc269()
6129 set_beep_amp(spec, spec->gen.mixer_nid, 0x04, HDA_INPUT); in patch_alc269()
6164 struct alc_spec *spec = codec->spec; in alc861_fixup_asus_amp_vref_0f() local
6174 spec->gen.keep_vref_in_automute = 1; in alc861_fixup_asus_amp_vref_0f()
6236 struct alc_spec *spec; in patch_alc861() local
6243 spec = codec->spec; in patch_alc861()
6244 spec->gen.beep_nid = 0x23; in patch_alc861()
6247 spec->power_hook = alc_power_eapd; in patch_alc861()
6258 if (!spec->gen.no_analog) in patch_alc861()
6259 set_beep_amp(spec, 0x23, 0, HDA_OUTPUT); in patch_alc861()
6327 struct alc_spec *spec; in patch_alc861vd() local
6334 spec = codec->spec; in patch_alc861vd()
6335 spec->gen.beep_nid = 0x23; in patch_alc861vd()
6337 spec->shutup = alc_eapd_shutup; in patch_alc861vd()
6347 if (!spec->gen.no_analog) in patch_alc861vd()
6348 set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc861vd()
6418 struct alc_spec *spec = codec->spec; in alc_fixup_bass_chmap() local
6419 spec->gen.pcm_rec[0]->stream[0].chmap = asus_pcm_2_1_chmaps; in alc_fixup_bass_chmap()
6428 struct alc_spec *spec = codec->spec; in gpio_led_power_filter() local
6429 if (nid == codec->core.afg && power_state == AC_PWRST_D3 && spec->gpio_led) in gpio_led_power_filter()
6437 struct alc_spec *spec = codec->spec; in alc662_fixup_led_gpio1() local
6445 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc662_fixup_led_gpio1()
6446 spec->gpio_led = 0; in alc662_fixup_led_gpio1()
6447 spec->mute_led_polarity = 1; in alc662_fixup_led_gpio1()
6448 spec->gpio_mute_led_mask = 0x01; in alc662_fixup_led_gpio1()
6921 struct alc_spec *spec; in patch_alc662() local
6928 spec = codec->spec; in patch_alc662()
6930 spec->shutup = alc_eapd_shutup; in patch_alc662()
6933 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; in patch_alc662()
6939 spec->init_hook = alc668_restore_default_value; in patch_alc662()
6951 spec->gen.beep_nid = 0x01; in patch_alc662()
6955 spec->cdefine.platform_type == 1) { in patch_alc662()
6966 if (!spec->gen.no_analog && spec->gen.beep_nid) { in patch_alc662()
6969 set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc662()
6975 set_beep_amp(spec, 0x0b, 0x04, HDA_INPUT); in patch_alc662()
6978 set_beep_amp(spec, 0x0b, 0x03, HDA_INPUT); in patch_alc662()