Lines Matching refs:spec
172 struct alc_spec *spec = codec->spec; in alc_get_coef0() local
174 if (!spec->coef0) in alc_get_coef0()
175 spec->coef0 = alc_read_coef_idx(codec, 0); in alc_get_coef0()
176 return spec->coef0; in alc_get_coef0()
210 static void add_mixer(struct alc_spec *spec, const struct snd_kcontrol_new *mix) in add_mixer() argument
212 if (snd_BUG_ON(spec->num_mixers >= ARRAY_SIZE(spec->mixers))) in add_mixer()
214 spec->mixers[spec->num_mixers++] = mix; in add_mixer()
249 struct alc_spec *spec = codec->spec; in alc_fix_pll() local
251 if (spec->pll_nid) in alc_fix_pll()
252 alc_update_coefex_idx(codec, spec->pll_nid, spec->pll_coef_idx, in alc_fix_pll()
253 1 << spec->pll_coef_bit, 0); in alc_fix_pll()
259 struct alc_spec *spec = codec->spec; in alc_fix_pll_init() local
260 spec->pll_nid = nid; in alc_fix_pll_init()
261 spec->pll_coef_idx = coef_idx; in alc_fix_pll_init()
262 spec->pll_coef_bit = coef_bit; in alc_fix_pll_init()
412 struct alc_spec *spec = codec->spec; in alc_eapd_shutup() local
415 if (!spec->no_depop_delay) in alc_eapd_shutup()
467 struct alc_spec *spec = codec->spec; in alc_fixup_sku_ignore() local
469 spec->cdefine.fixup = 1; in alc_fixup_sku_ignore()
470 spec->cdefine.sku_cfg = ALC_FIXUP_SKU_IGNORE; in alc_fixup_sku_ignore()
477 struct alc_spec *spec = codec->spec; in alc_fixup_no_depop_delay() local
480 spec->no_depop_delay = 1; in alc_fixup_no_depop_delay()
489 struct alc_spec *spec = codec->spec; in alc_auto_parse_customize_define() local
491 spec->cdefine.enable_pcbeep = 1; /* assume always enabled */ in alc_auto_parse_customize_define()
493 if (spec->cdefine.fixup) { in alc_auto_parse_customize_define()
494 ass = spec->cdefine.sku_cfg; in alc_auto_parse_customize_define()
526 spec->cdefine.port_connectivity = ass >> 30; in alc_auto_parse_customize_define()
527 spec->cdefine.enable_pcbeep = (ass & 0x100000) >> 20; in alc_auto_parse_customize_define()
528 spec->cdefine.check_sum = (ass >> 16) & 0xf; in alc_auto_parse_customize_define()
529 spec->cdefine.customization = ass >> 8; in alc_auto_parse_customize_define()
531 spec->cdefine.sku_cfg = ass; in alc_auto_parse_customize_define()
532 spec->cdefine.external_amp = (ass & 0x38) >> 3; in alc_auto_parse_customize_define()
533 spec->cdefine.platform_type = (ass & 0x4) >> 2; in alc_auto_parse_customize_define()
534 spec->cdefine.swap = (ass & 0x2) >> 1; in alc_auto_parse_customize_define()
535 spec->cdefine.override = ass & 0x1; in alc_auto_parse_customize_define()
538 nid, spec->cdefine.sku_cfg); in alc_auto_parse_customize_define()
540 spec->cdefine.port_connectivity); in alc_auto_parse_customize_define()
541 codec_dbg(codec, "SKU: enable_pcbeep=0x%x\n", spec->cdefine.enable_pcbeep); in alc_auto_parse_customize_define()
542 codec_dbg(codec, "SKU: check_sum=0x%08x\n", spec->cdefine.check_sum); in alc_auto_parse_customize_define()
543 codec_dbg(codec, "SKU: customization=0x%08x\n", spec->cdefine.customization); in alc_auto_parse_customize_define()
544 codec_dbg(codec, "SKU: external_amp=0x%x\n", spec->cdefine.external_amp); in alc_auto_parse_customize_define()
545 codec_dbg(codec, "SKU: platform_type=0x%x\n", spec->cdefine.platform_type); in alc_auto_parse_customize_define()
546 codec_dbg(codec, "SKU: swap=0x%x\n", spec->cdefine.swap); in alc_auto_parse_customize_define()
547 codec_dbg(codec, "SKU: override=0x%x\n", spec->cdefine.override); in alc_auto_parse_customize_define()
580 struct alc_spec *spec = codec->spec; in alc_subsystem_id() local
582 if (spec->cdefine.fixup) { in alc_subsystem_id()
583 ass = spec->cdefine.sku_cfg; in alc_subsystem_id()
636 spec->init_amp = ALC_INIT_GPIO1; in alc_subsystem_id()
639 spec->init_amp = ALC_INIT_GPIO2; in alc_subsystem_id()
642 spec->init_amp = ALC_INIT_GPIO3; in alc_subsystem_id()
646 spec->init_amp = ALC_INIT_DEFAULT; in alc_subsystem_id()
662 if (!spec->gen.autocfg.hp_pins[0] && in alc_subsystem_id()
663 !(spec->gen.autocfg.line_out_pins[0] && in alc_subsystem_id()
664 spec->gen.autocfg.line_out_type == AUTO_PIN_HP_OUT)) { in alc_subsystem_id()
668 if (found_in_nid_list(nid, spec->gen.autocfg.line_out_pins, in alc_subsystem_id()
669 spec->gen.autocfg.line_outs)) in alc_subsystem_id()
671 spec->gen.autocfg.hp_pins[0] = nid; in alc_subsystem_id()
681 struct alc_spec *spec = codec->spec; in alc_ssid_check() local
684 spec->init_amp = ALC_INIT_DEFAULT; in alc_ssid_check()
694 struct alc_spec *spec = codec->spec; in alc_fixup_inv_dmic() local
696 spec->gen.inv_dmic_split = 1; in alc_fixup_inv_dmic()
711 struct alc_spec *spec = codec->spec; in alc_build_controls() local
718 for (i = 0; i < spec->num_mixers; i++) { in alc_build_controls()
719 err = snd_hda_add_new_ctls(codec, spec->mixers[i]); in alc_build_controls()
726 if (spec->beep_amp) { in alc_build_controls()
733 kctl->private_value = spec->beep_amp; in alc_build_controls()
752 struct alc_spec *spec = codec->spec; in alc_init() local
754 if (spec->init_hook) in alc_init()
755 spec->init_hook(codec); in alc_init()
758 alc_auto_init_amp(codec, spec->init_amp); in alc_init()
769 struct alc_spec *spec = codec->spec; in alc_shutup() local
771 if (spec && spec->shutup) in alc_shutup()
772 spec->shutup(codec); in alc_shutup()
779 struct alc_spec *spec = codec->spec; in alc_reboot_notify() local
781 if (spec && spec->reboot_notify) in alc_reboot_notify()
782 spec->reboot_notify(codec); in alc_reboot_notify()
806 struct alc_spec *spec = codec->spec; in alc_suspend() local
808 if (spec && spec->power_hook) in alc_suspend()
809 spec->power_hook(codec); in alc_suspend()
817 struct alc_spec *spec = codec->spec; in alc_resume() local
819 if (!spec->no_depop_delay) in alc_resume()
954 #define set_beep_amp(spec, nid, idx, dir) \ argument
955 ((spec)->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 3, idx, dir))
972 struct alc_spec *spec = codec->spec; in has_cdefine_beep() local
977 return spec->cdefine.enable_pcbeep; in has_cdefine_beep()
980 #define set_beep_amp(spec, nid, idx, dir) /* NOP */ argument
992 struct alc_spec *spec = codec->spec; in alc_parse_auto_config() local
993 struct auto_pin_cfg *cfg = &spec->gen.autocfg; in alc_parse_auto_config()
997 spec->parse_flags); in alc_parse_auto_config()
1014 struct alc_spec *spec = kzalloc(sizeof(*spec), GFP_KERNEL); in alc_alloc_spec() local
1017 if (!spec) in alc_alloc_spec()
1019 codec->spec = spec; in alc_alloc_spec()
1020 snd_hda_gen_spec_init(&spec->gen); in alc_alloc_spec()
1021 spec->gen.mixer_nid = mixer_nid; in alc_alloc_spec()
1022 spec->gen.own_eapd_ctl = 1; in alc_alloc_spec()
1029 kfree(spec); in alc_alloc_spec()
1459 struct alc_spec *spec; in patch_alc880() local
1466 spec = codec->spec; in patch_alc880()
1467 spec->gen.need_dac_fix = 1; in patch_alc880()
1468 spec->gen.beep_nid = 0x01; in patch_alc880()
1479 if (!spec->gen.no_analog) in patch_alc880()
1480 set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc880()
1525 struct alc_spec *spec = codec->spec; in alc260_gpio1_automute() local
1527 spec->gen.hp_jack_present); in alc260_gpio1_automute()
1533 struct alc_spec *spec = codec->spec; in alc260_fixup_gpio1_toggle() local
1538 spec->gen.automute_hook = alc260_gpio1_automute; in alc260_fixup_gpio1_toggle()
1539 spec->gen.detect_hp = 1; in alc260_fixup_gpio1_toggle()
1540 spec->gen.automute_speaker = 1; in alc260_fixup_gpio1_toggle()
1541 spec->gen.autocfg.hp_pins[0] = 0x0f; /* copy it for automute */ in alc260_fixup_gpio1_toggle()
1551 struct alc_spec *spec = codec->spec; in alc260_fixup_kn1() local
1573 spec->init_amp = ALC_INIT_NONE; in alc260_fixup_kn1()
1581 struct alc_spec *spec = codec->spec; in alc260_fixup_fsc_s7020() local
1583 spec->init_amp = ALC_INIT_NONE; in alc260_fixup_fsc_s7020()
1589 struct alc_spec *spec = codec->spec; in alc260_fixup_fsc_s7020_jwse() local
1591 spec->gen.add_jack_modes = 1; in alc260_fixup_fsc_s7020_jwse()
1592 spec->gen.hp_mic = 1; in alc260_fixup_fsc_s7020_jwse()
1707 struct alc_spec *spec; in patch_alc260() local
1714 spec = codec->spec; in patch_alc260()
1719 spec->gen.prefer_hp_amp = 1; in patch_alc260()
1720 spec->gen.beep_nid = 0x01; in patch_alc260()
1731 if (!spec->gen.no_analog) in patch_alc260()
1732 set_beep_amp(spec, 0x07, 0x05, HDA_INPUT); in patch_alc260()
1735 spec->shutup = alc_eapd_shutup; in patch_alc260()
1877 struct alc_spec *spec = codec->spec; in alc889_fixup_mbp_vref() local
1890 spec->gen.keep_vref_in_automute = 1; in alc889_fixup_mbp_vref()
1898 struct alc_spec *spec = codec->spec; in alc889_fixup_mac_pins() local
1907 spec->gen.keep_vref_in_automute = 1; in alc889_fixup_mac_pins()
1947 struct alc_spec *spec = codec->spec; in alc882_fixup_no_primary_hp() local
1949 spec->gen.no_primary_hp = 1; in alc882_fixup_no_primary_hp()
1950 spec->gen.no_multi_io = 1; in alc882_fixup_no_primary_hp()
2293 struct alc_spec *spec; in patch_alc882() local
2300 spec = codec->spec; in patch_alc882()
2320 spec->gen.beep_nid = 0x01; in patch_alc882()
2327 if (!spec->gen.no_analog && spec->gen.beep_nid) in patch_alc882()
2328 set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc882()
2457 struct alc_spec *spec; in patch_alc262() local
2464 spec = codec->spec; in patch_alc262()
2465 spec->gen.shared_mic_vref_pin = 0x18; in patch_alc262()
2482 spec->gen.beep_nid = 0x01; in patch_alc262()
2489 if (!spec->gen.no_analog && spec->gen.beep_nid) in patch_alc262()
2490 set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc262()
2493 spec->shutup = alc_eapd_shutup; in patch_alc262()
2587 struct alc_spec *spec; in patch_alc268() local
2595 spec = codec->spec; in patch_alc268()
2596 spec->gen.beep_nid = 0x01; in patch_alc268()
2606 if (err > 0 && !spec->gen.no_analog && in patch_alc268()
2607 spec->gen.autocfg.speaker_pins[0] != 0x1d) { in patch_alc268()
2608 add_mixer(spec, alc268_beep_mixer); in patch_alc268()
2620 spec->shutup = alc_eapd_shutup; in patch_alc268()
2668 struct alc_spec *spec = codec->spec; in alc269_parse_auto_config() local
2671 switch (spec->codec_variant) { in alc269_parse_auto_config()
2725 struct alc_spec *spec = codec->spec; in alc269_shutup() local
2727 if (spec->codec_variant == ALC269_TYPE_ALC269VB) in alc269_shutup()
2729 if (spec->codec_variant == ALC269_TYPE_ALC269VB && in alc269_shutup()
2776 struct alc_spec *spec = codec->spec; in alc282_init() local
2777 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc282_init()
2813 struct alc_spec *spec = codec->spec; in alc282_shutup() local
2814 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc282_shutup()
2891 struct alc_spec *spec = codec->spec; in alc283_init() local
2892 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc283_init()
2895 if (!spec->gen.autocfg.hp_outs) { in alc283_init()
2896 if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT) in alc283_init()
2897 hp_pin = spec->gen.autocfg.line_out_pins[0]; in alc283_init()
2932 struct alc_spec *spec = codec->spec; in alc283_shutup() local
2933 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc283_shutup()
2936 if (!spec->gen.autocfg.hp_outs) { in alc283_shutup()
2937 if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT) in alc283_shutup()
2938 hp_pin = spec->gen.autocfg.line_out_pins[0]; in alc283_shutup()
3066 struct alc_spec *spec = codec->spec; in alc269_suspend() local
3068 if (spec->has_alc5505_dsp) in alc269_suspend()
3075 struct alc_spec *spec = codec->spec; in alc269_resume() local
3077 if (spec->codec_variant == ALC269_TYPE_ALC269VB) in alc269_resume()
3079 if (spec->codec_variant == ALC269_TYPE_ALC269VB && in alc269_resume()
3086 if (spec->codec_variant == ALC269_TYPE_ALC269VB) in alc269_resume()
3088 if (spec->codec_variant == ALC269_TYPE_ALC269VB && in alc269_resume()
3100 if (spec->gpio_led) in alc269_resume()
3102 spec->gpio_led); in alc269_resume()
3104 if (spec->has_alc5505_dsp) in alc269_resume()
3114 struct alc_spec *spec = codec->spec; in alc269_fixup_pincfg_no_hp_to_lineout() local
3117 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; in alc269_fixup_pincfg_no_hp_to_lineout()
3130 struct alc_spec *spec = codec->spec; in alc269_fixup_headset_mic() local
3133 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc269_fixup_headset_mic()
3157 struct alc_spec *spec = codec->spec; in alc269_fixup_pcm_44k() local
3165 spec->gen.stream_analog_playback = &alc269_44k_pcm_analog_playback; in alc269_fixup_pcm_44k()
3166 spec->gen.stream_analog_capture = &alc269_44k_pcm_analog_capture; in alc269_fixup_pcm_44k()
3192 struct alc_spec *spec = codec->spec; in alc269_fixup_quanta_mute() local
3195 spec->gen.automute_hook = alc269_quanta_automute; in alc269_fixup_quanta_mute()
3201 struct alc_spec *spec = codec->spec; in alc269_x101_hp_automute_hook() local
3206 vref = spec->gen.hp_jack_present ? PIN_VREF80 : 0; in alc269_x101_hp_automute_hook()
3218 struct alc_spec *spec = codec->spec; in alc269_fixup_x101_headset_mic() local
3220 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc269_fixup_x101_headset_mic()
3221 spec->gen.hp_automute_hook = alc269_x101_hp_automute_hook; in alc269_fixup_x101_headset_mic()
3230 struct alc_spec *spec = codec->spec; in alc269_fixup_mic_mute_hook() local
3233 if (spec->mute_led_polarity) in alc269_fixup_mic_mute_hook()
3235 pinval = snd_hda_codec_get_pin_target(codec, spec->mute_led_nid); in alc269_fixup_mic_mute_hook()
3238 if (spec->mute_led_nid) in alc269_fixup_mic_mute_hook()
3239 snd_hda_set_pin_ctl_cache(codec, spec->mute_led_nid, pinval); in alc269_fixup_mic_mute_hook()
3247 struct alc_spec *spec = codec->spec; in led_power_filter() local
3250 (nid != spec->mute_led_nid && nid != spec->cap_mute_led_nid)) in led_power_filter()
3263 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_mute_led() local
3275 spec->mute_led_polarity = pol; in alc269_fixup_hp_mute_led()
3276 spec->mute_led_nid = pin - 0x0a + 0x18; in alc269_fixup_hp_mute_led()
3277 spec->gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; in alc269_fixup_hp_mute_led()
3278 spec->gen.vmaster_mute_enum = 1; in alc269_fixup_hp_mute_led()
3281 "Detected mute LED for %x:%d\n", spec->mute_led_nid, in alc269_fixup_hp_mute_led()
3282 spec->mute_led_polarity); in alc269_fixup_hp_mute_led()
3290 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_mute_led_mic1() local
3292 spec->mute_led_polarity = 0; in alc269_fixup_hp_mute_led_mic1()
3293 spec->mute_led_nid = 0x18; in alc269_fixup_hp_mute_led_mic1()
3294 spec->gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; in alc269_fixup_hp_mute_led_mic1()
3295 spec->gen.vmaster_mute_enum = 1; in alc269_fixup_hp_mute_led_mic1()
3303 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_mute_led_mic2() local
3305 spec->mute_led_polarity = 0; in alc269_fixup_hp_mute_led_mic2()
3306 spec->mute_led_nid = 0x19; in alc269_fixup_hp_mute_led_mic2()
3307 spec->gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; in alc269_fixup_hp_mute_led_mic2()
3308 spec->gen.vmaster_mute_enum = 1; in alc269_fixup_hp_mute_led_mic2()
3317 struct alc_spec *spec = codec->spec; in alc_update_gpio_led() local
3318 unsigned int oldval = spec->gpio_led; in alc_update_gpio_led()
3320 if (spec->mute_led_polarity) in alc_update_gpio_led()
3324 spec->gpio_led &= ~mask; in alc_update_gpio_led()
3326 spec->gpio_led |= mask; in alc_update_gpio_led()
3327 if (spec->gpio_led != oldval) in alc_update_gpio_led()
3329 spec->gpio_led); in alc_update_gpio_led()
3336 struct alc_spec *spec = codec->spec; in alc_fixup_gpio_mute_hook() local
3338 alc_update_gpio_led(codec, spec->gpio_mute_led_mask, enabled); in alc_fixup_gpio_mute_hook()
3346 struct alc_spec *spec = codec->spec; in alc_fixup_gpio_mic_mute_hook() local
3349 alc_update_gpio_led(codec, spec->gpio_mic_led_mask, in alc_fixup_gpio_mic_mute_hook()
3357 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_gpio_led() local
3365 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc269_fixup_hp_gpio_led()
3366 spec->gen.cap_sync_hook = alc_fixup_gpio_mic_mute_hook; in alc269_fixup_hp_gpio_led()
3367 spec->gpio_led = 0; in alc269_fixup_hp_gpio_led()
3368 spec->mute_led_polarity = 0; in alc269_fixup_hp_gpio_led()
3369 spec->gpio_mute_led_mask = 0x08; in alc269_fixup_hp_gpio_led()
3370 spec->gpio_mic_led_mask = 0x10; in alc269_fixup_hp_gpio_led()
3378 struct alc_spec *spec = codec->spec; in alc286_fixup_hp_gpio_led() local
3386 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc286_fixup_hp_gpio_led()
3387 spec->gen.cap_sync_hook = alc_fixup_gpio_mic_mute_hook; in alc286_fixup_hp_gpio_led()
3388 spec->gpio_led = 0; in alc286_fixup_hp_gpio_led()
3389 spec->mute_led_polarity = 0; in alc286_fixup_hp_gpio_led()
3390 spec->gpio_mute_led_mask = 0x02; in alc286_fixup_hp_gpio_led()
3391 spec->gpio_mic_led_mask = 0x20; in alc286_fixup_hp_gpio_led()
3401 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_cap_mic_mute_hook() local
3404 pinval = snd_hda_codec_get_pin_target(codec, spec->cap_mute_led_nid); in alc269_fixup_hp_cap_mic_mute_hook()
3418 if (spec->cap_mute_led_nid) in alc269_fixup_hp_cap_mic_mute_hook()
3419 snd_hda_set_pin_ctl_cache(codec, spec->cap_mute_led_nid, pinval); in alc269_fixup_hp_cap_mic_mute_hook()
3425 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_gpio_mic1_led() local
3433 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc269_fixup_hp_gpio_mic1_led()
3434 spec->gen.cap_sync_hook = alc269_fixup_hp_cap_mic_mute_hook; in alc269_fixup_hp_gpio_mic1_led()
3435 spec->gpio_led = 0; in alc269_fixup_hp_gpio_mic1_led()
3436 spec->mute_led_polarity = 0; in alc269_fixup_hp_gpio_mic1_led()
3437 spec->gpio_mute_led_mask = 0x08; in alc269_fixup_hp_gpio_mic1_led()
3438 spec->cap_mute_led_nid = 0x18; in alc269_fixup_hp_gpio_mic1_led()
3448 struct alc_spec *spec = codec->spec; in alc280_fixup_hp_gpio4() local
3456 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc280_fixup_hp_gpio4()
3457 spec->gen.cap_sync_hook = alc269_fixup_hp_cap_mic_mute_hook; in alc280_fixup_hp_gpio4()
3458 spec->gpio_led = 0; in alc280_fixup_hp_gpio4()
3459 spec->mute_led_polarity = 0; in alc280_fixup_hp_gpio4()
3460 spec->gpio_mute_led_mask = 0x08; in alc280_fixup_hp_gpio4()
3461 spec->cap_mute_led_nid = 0x18; in alc280_fixup_hp_gpio4()
3470 struct alc_spec *spec = codec->spec; in gpio2_mic_hotkey_event() local
3474 input_report_key(spec->kb_dev, KEY_MICMUTE, 1); in gpio2_mic_hotkey_event()
3475 input_sync(spec->kb_dev); in gpio2_mic_hotkey_event()
3476 input_report_key(spec->kb_dev, KEY_MICMUTE, 0); in gpio2_mic_hotkey_event()
3477 input_sync(spec->kb_dev); in gpio2_mic_hotkey_event()
3482 struct alc_spec *spec = codec->spec; in alc_register_micmute_input_device() local
3484 spec->kb_dev = input_allocate_device(); in alc_register_micmute_input_device()
3485 if (!spec->kb_dev) { in alc_register_micmute_input_device()
3489 spec->kb_dev->name = "Microphone Mute Button"; in alc_register_micmute_input_device()
3490 spec->kb_dev->evbit[0] = BIT_MASK(EV_KEY); in alc_register_micmute_input_device()
3491 spec->kb_dev->keybit[BIT_WORD(KEY_MICMUTE)] = BIT_MASK(KEY_MICMUTE); in alc_register_micmute_input_device()
3493 if (input_register_device(spec->kb_dev)) { in alc_register_micmute_input_device()
3495 input_free_device(spec->kb_dev); in alc_register_micmute_input_device()
3496 spec->kb_dev = NULL; in alc_register_micmute_input_device()
3517 struct alc_spec *spec = codec->spec; in alc280_fixup_hp_gpio2_mic_hotkey() local
3529 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc280_fixup_hp_gpio2_mic_hotkey()
3530 spec->gen.cap_sync_hook = alc_fixup_gpio_mic_mute_hook; in alc280_fixup_hp_gpio2_mic_hotkey()
3531 spec->gpio_led = 0; in alc280_fixup_hp_gpio2_mic_hotkey()
3532 spec->mute_led_polarity = 0; in alc280_fixup_hp_gpio2_mic_hotkey()
3533 spec->gpio_mute_led_mask = 0x08; in alc280_fixup_hp_gpio2_mic_hotkey()
3534 spec->gpio_mic_led_mask = 0x10; in alc280_fixup_hp_gpio2_mic_hotkey()
3538 if (!spec->kb_dev) in alc280_fixup_hp_gpio2_mic_hotkey()
3543 spec->init_amp = ALC_INIT_DEFAULT; in alc280_fixup_hp_gpio2_mic_hotkey()
3546 input_unregister_device(spec->kb_dev); in alc280_fixup_hp_gpio2_mic_hotkey()
3547 spec->kb_dev = NULL; in alc280_fixup_hp_gpio2_mic_hotkey()
3562 struct alc_spec *spec = codec->spec; in alc233_fixup_lenovo_line2_mic_hotkey() local
3572 spec->gen.cap_sync_hook = alc_fixup_gpio_mic_mute_hook; in alc233_fixup_lenovo_line2_mic_hotkey()
3573 spec->gpio_led = 0; in alc233_fixup_lenovo_line2_mic_hotkey()
3574 spec->mute_led_polarity = 0; in alc233_fixup_lenovo_line2_mic_hotkey()
3575 spec->gpio_mic_led_mask = 0x04; in alc233_fixup_lenovo_line2_mic_hotkey()
3579 if (!spec->kb_dev) in alc233_fixup_lenovo_line2_mic_hotkey()
3584 spec->init_amp = ALC_INIT_DEFAULT; in alc233_fixup_lenovo_line2_mic_hotkey()
3587 input_unregister_device(spec->kb_dev); in alc233_fixup_lenovo_line2_mic_hotkey()
3588 spec->kb_dev = NULL; in alc233_fixup_lenovo_line2_mic_hotkey()
3595 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_line1_mic1_led() local
3598 spec->gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; in alc269_fixup_hp_line1_mic1_led()
3599 spec->gen.cap_sync_hook = alc269_fixup_hp_cap_mic_mute_hook; in alc269_fixup_hp_line1_mic1_led()
3600 spec->mute_led_polarity = 0; in alc269_fixup_hp_line1_mic1_led()
3601 spec->mute_led_nid = 0x1a; in alc269_fixup_hp_line1_mic1_led()
3602 spec->cap_mute_led_nid = 0x18; in alc269_fixup_hp_line1_mic1_led()
3603 spec->gen.vmaster_mute_enum = 1; in alc269_fixup_hp_line1_mic1_led()
4015 struct alc_spec *spec = codec->spec; in alc_determine_headset_type() local
4083 spec->current_headset_type = is_ctia ? ALC_HEADSET_TYPE_CTIA : ALC_HEADSET_TYPE_OMTP; in alc_determine_headset_type()
4088 struct alc_spec *spec = codec->spec; in alc_update_headset_mode() local
4090 hda_nid_t mux_pin = spec->gen.imux_pins[spec->gen.cur_mux[0]]; in alc_update_headset_mode()
4091 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc_update_headset_mode()
4097 else if (mux_pin == spec->headset_mic_pin) in alc_update_headset_mode()
4099 else if (mux_pin == spec->headphone_mic_pin) in alc_update_headset_mode()
4104 if (new_headset_mode == spec->current_headset_mode) { in alc_update_headset_mode()
4112 spec->gen.hp_jack_present = false; in alc_update_headset_mode()
4115 if (spec->current_headset_type == ALC_HEADSET_TYPE_UNKNOWN) in alc_update_headset_mode()
4117 if (spec->current_headset_type == ALC_HEADSET_TYPE_CTIA) in alc_update_headset_mode()
4119 else if (spec->current_headset_type == ALC_HEADSET_TYPE_OMTP) in alc_update_headset_mode()
4121 spec->gen.hp_jack_present = true; in alc_update_headset_mode()
4124 alc_headset_mode_mic_in(codec, hp_pin, spec->headphone_mic_pin); in alc_update_headset_mode()
4125 spec->gen.hp_jack_present = false; in alc_update_headset_mode()
4129 spec->gen.hp_jack_present = true; in alc_update_headset_mode()
4135 if (spec->headphone_mic_pin && spec->headphone_mic_pin != hp_pin) in alc_update_headset_mode()
4136 snd_hda_set_pin_ctl_cache(codec, spec->headphone_mic_pin, in alc_update_headset_mode()
4139 spec->current_headset_mode = new_headset_mode; in alc_update_headset_mode()
4154 struct alc_spec *spec = codec->spec; in alc_update_headset_jack_cb() local
4155 spec->current_headset_type = ALC_HEADSET_TYPE_UNKNOWN; in alc_update_headset_jack_cb()
4162 struct alc_spec *spec = codec->spec; in alc_probe_headset_mode() local
4163 struct auto_pin_cfg *cfg = &spec->gen.autocfg; in alc_probe_headset_mode()
4167 if (cfg->inputs[i].is_headset_mic && !spec->headset_mic_pin) in alc_probe_headset_mode()
4168 spec->headset_mic_pin = cfg->inputs[i].pin; in alc_probe_headset_mode()
4169 if (cfg->inputs[i].is_headphone_mic && !spec->headphone_mic_pin) in alc_probe_headset_mode()
4170 spec->headphone_mic_pin = cfg->inputs[i].pin; in alc_probe_headset_mode()
4173 spec->gen.cap_sync_hook = alc_update_headset_mode_hook; in alc_probe_headset_mode()
4174 spec->gen.automute_hook = alc_update_headset_mode; in alc_probe_headset_mode()
4175 spec->gen.hp_automute_hook = alc_update_headset_jack_cb; in alc_probe_headset_mode()
4181 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode() local
4185 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC | HDA_PINCFG_HEADPHONE_MIC; in alc_fixup_headset_mode()
4191 spec->current_headset_mode = 0; in alc_fixup_headset_mode()
4201 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode_no_hp_mic() local
4202 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc_fixup_headset_mode_no_hp_mic()
4251 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode_alc255_no_hp_mic() local
4252 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc_fixup_headset_mode_alc255_no_hp_mic()
4262 struct alc_spec *spec = codec->spec; in alc288_update_headset_jack_cb() local
4267 present = spec->gen.hp_jack_present ? 0x40 : 0; in alc288_update_headset_jack_cb()
4277 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode_dell_alc288() local
4278 spec->gen.hp_automute_hook = alc288_update_headset_jack_cb; in alc_fixup_headset_mode_dell_alc288()
4286 struct alc_spec *spec = codec->spec; in alc_fixup_auto_mute_via_amp() local
4287 spec->gen.auto_mute_via_amp = 1; in alc_fixup_auto_mute_via_amp()
4299 struct alc_spec *spec = codec->spec; in alc_fixup_no_shutup() local
4300 spec->shutup = alc_no_shutup; in alc_fixup_no_shutup()
4308 struct alc_spec *spec = codec->spec; in alc_fixup_disable_aamix() local
4310 spec->gen.mixer_nid = 0; in alc_fixup_disable_aamix()
4323 struct alc_spec *spec = codec->spec; in alc_fixup_tpt440_dock() local
4326 spec->shutup = alc_no_shutup; /* reduce click noise */ in alc_fixup_tpt440_dock()
4327 spec->reboot_notify = alc_d3_at_reboot; /* reduce noise */ in alc_fixup_tpt440_dock()
4328 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; in alc_fixup_tpt440_dock()
4336 struct alc_spec *spec = codec->spec; in alc_shutup_dell_xps13() local
4337 int hp_pin = spec->gen.autocfg.hp_pins[0]; in alc_shutup_dell_xps13()
4348 struct alc_spec *spec = codec->spec; in alc_fixup_dell_xps13() local
4349 struct hda_input_mux *imux = &spec->gen.input_mux; in alc_fixup_dell_xps13()
4360 spec->shutup = alc_shutup_dell_xps13; in alc_fixup_dell_xps13()
4364 if (spec->gen.imux_pins[i] == 0x12) { in alc_fixup_dell_xps13()
4365 spec->gen.cur_mux[0] = i; in alc_fixup_dell_xps13()
4376 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode_alc662() local
4379 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc_fixup_headset_mode_alc662()
4380 spec->gen.hp_mic = 1; /* Mic-in is same pin as headphone */ in alc_fixup_headset_mode_alc662()
4404 struct alc_spec *spec = codec->spec; in find_ext_mic_pin() local
4405 struct auto_pin_cfg *cfg = &spec->gen.autocfg; in find_ext_mic_pin()
4427 struct alc_spec *spec = codec->spec; in alc271_hp_gate_mic_jack() local
4431 int hp_pin = spec->gen.autocfg.hp_pins[0]; in alc271_hp_gate_mic_jack()
4443 struct alc_spec *spec = codec->spec; in alc269_fixup_limit_int_mic_boost() local
4444 struct auto_pin_cfg *cfg = &spec->gen.autocfg; in alc269_fixup_limit_int_mic_boost()
4474 struct alc_spec *spec = codec->spec; in alc283_hp_automute_hook() local
4480 vref = spec->gen.hp_jack_present ? PIN_VREF80 : 0; in alc283_hp_automute_hook()
4490 struct alc_spec *spec = codec->spec; in alc283_fixup_chromebook() local
4496 spec->gen.mixer_nid = 0; in alc283_fixup_chromebook()
4511 struct alc_spec *spec = codec->spec; in alc283_fixup_sense_combo_jack() local
4515 spec->gen.hp_automute_hook = alc283_hp_automute_hook; in alc283_fixup_sense_combo_jack()
4528 struct alc_spec *spec = codec->spec; in asus_tx300_automute() local
4531 spec->gen.mute_bits |= (1ULL << 0x14); in asus_tx300_automute()
4537 struct alc_spec *spec = codec->spec; in alc282_fixup_asus_tx300() local
4555 spec->gen.auto_mute_via_amp = 1; in alc282_fixup_asus_tx300()
4556 spec->gen.automute_hook = asus_tx300_automute; in alc282_fixup_asus_tx300()
5965 struct alc_spec *spec = codec->spec; in alc269_fill_coef() local
5968 if (spec->codec_variant != ALC269_TYPE_ALC269VB) in alc269_fill_coef()
6007 struct alc_spec *spec; in patch_alc269() local
6014 spec = codec->spec; in patch_alc269()
6015 spec->gen.shared_mic_vref_pin = 0x18; 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()
6102 spec->has_alc5505_dsp = 1; in patch_alc269()
6103 spec->init_hook = alc5505_dsp_init; in patch_alc269()
6111 if (!spec->gen.no_analog && spec->gen.beep_nid && spec->gen.mixer_nid) in patch_alc269()
6112 set_beep_amp(spec, spec->gen.mixer_nid, 0x04, HDA_INPUT); in patch_alc269()
6120 if (!spec->shutup) in patch_alc269()
6121 spec->shutup = alc269_shutup; in patch_alc269()
6156 struct alc_spec *spec = codec->spec; in alc861_fixup_asus_amp_vref_0f() local
6166 spec->gen.keep_vref_in_automute = 1; in alc861_fixup_asus_amp_vref_0f()
6228 struct alc_spec *spec; in patch_alc861() local
6235 spec = codec->spec; in patch_alc861()
6236 spec->gen.beep_nid = 0x23; in patch_alc861()
6246 if (!spec->gen.no_analog) in patch_alc861()
6247 set_beep_amp(spec, 0x23, 0, HDA_OUTPUT); in patch_alc861()
6251 spec->power_hook = alc_power_eapd; in patch_alc861()
6320 struct alc_spec *spec; in patch_alc861vd() local
6327 spec = codec->spec; in patch_alc861vd()
6328 spec->gen.beep_nid = 0x23; in patch_alc861vd()
6338 if (!spec->gen.no_analog) in patch_alc861vd()
6339 set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc861vd()
6343 spec->shutup = alc_eapd_shutup; in patch_alc861vd()
6413 struct alc_spec *spec = codec->spec; in alc_fixup_bass_chmap() local
6414 spec->gen.pcm_rec[0]->stream[0].chmap = asus_pcm_2_1_chmaps; in alc_fixup_bass_chmap()
6423 struct alc_spec *spec = codec->spec; in gpio_led_power_filter() local
6424 if (nid == codec->core.afg && power_state == AC_PWRST_D3 && spec->gpio_led) in gpio_led_power_filter()
6432 struct alc_spec *spec = codec->spec; in alc662_fixup_led_gpio1() local
6440 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc662_fixup_led_gpio1()
6441 spec->gpio_led = 0; in alc662_fixup_led_gpio1()
6442 spec->mute_led_polarity = 1; in alc662_fixup_led_gpio1()
6443 spec->gpio_mute_led_mask = 0x01; in alc662_fixup_led_gpio1()
6960 struct alc_spec *spec; in patch_alc662() local
6967 spec = codec->spec; in patch_alc662()
6970 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; in patch_alc662()
6976 spec->init_hook = alc668_restore_default_value; in patch_alc662()
6988 spec->gen.beep_nid = 0x01; in patch_alc662()
6992 spec->cdefine.platform_type == 1) { in patch_alc662()
7003 if (!spec->gen.no_analog && spec->gen.beep_nid) { in patch_alc662()
7006 set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc662()
7012 set_beep_amp(spec, 0x0b, 0x04, HDA_INPUT); in patch_alc662()
7015 set_beep_amp(spec, 0x0b, 0x03, HDA_INPUT); in patch_alc662()
7021 spec->shutup = alc_eapd_shutup; in patch_alc662()