Lines Matching refs:spec
173 struct alc_spec *spec = codec->spec; in alc_get_coef0() local
175 if (!spec->coef0) in alc_get_coef0()
176 spec->coef0 = alc_read_coef_idx(codec, 0); in alc_get_coef0()
177 return spec->coef0; in alc_get_coef0()
213 struct alc_spec *spec = codec->spec; in alc_setup_gpio() local
215 spec->gpio_mask |= mask; in alc_setup_gpio()
216 spec->gpio_dir |= mask; in alc_setup_gpio()
217 spec->gpio_data |= mask; in alc_setup_gpio()
222 struct alc_spec *spec = codec->spec; in alc_write_gpio_data() local
225 spec->gpio_data); in alc_write_gpio_data()
231 struct alc_spec *spec = codec->spec; in alc_update_gpio_data() local
232 unsigned int oldval = spec->gpio_data; in alc_update_gpio_data()
235 spec->gpio_data |= mask; in alc_update_gpio_data()
237 spec->gpio_data &= ~mask; in alc_update_gpio_data()
238 if (oldval != spec->gpio_data) in alc_update_gpio_data()
244 struct alc_spec *spec = codec->spec; in alc_write_gpio() local
246 if (!spec->gpio_mask) in alc_write_gpio()
250 AC_VERB_SET_GPIO_MASK, spec->gpio_mask); in alc_write_gpio()
252 AC_VERB_SET_GPIO_DIRECTION, spec->gpio_dir); in alc_write_gpio()
253 if (spec->gpio_write_delay) in alc_write_gpio()
296 struct alc_spec *spec = codec->spec; in alc_fix_pll() local
298 if (spec->pll_nid) in alc_fix_pll()
299 alc_update_coefex_idx(codec, spec->pll_nid, spec->pll_coef_idx, in alc_fix_pll()
300 1 << spec->pll_coef_bit, 0); in alc_fix_pll()
306 struct alc_spec *spec = codec->spec; in alc_fix_pll_init() local
307 spec->pll_nid = nid; in alc_fix_pll_init()
308 spec->pll_coef_idx = coef_idx; in alc_fix_pll_init()
309 spec->pll_coef_bit = coef_bit; in alc_fix_pll_init()
482 struct alc_spec *spec = codec->spec; in alc_eapd_shutup() local
485 if (!spec->no_depop_delay) in alc_eapd_shutup()
529 struct alc_spec *spec = codec->spec; in alc_fixup_sku_ignore() local
531 spec->cdefine.fixup = 1; in alc_fixup_sku_ignore()
532 spec->cdefine.sku_cfg = ALC_FIXUP_SKU_IGNORE; in alc_fixup_sku_ignore()
539 struct alc_spec *spec = codec->spec; in alc_fixup_no_depop_delay() local
542 spec->no_depop_delay = 1; in alc_fixup_no_depop_delay()
551 struct alc_spec *spec = codec->spec; in alc_auto_parse_customize_define() local
553 spec->cdefine.enable_pcbeep = 1; /* assume always enabled */ in alc_auto_parse_customize_define()
555 if (spec->cdefine.fixup) { in alc_auto_parse_customize_define()
556 ass = spec->cdefine.sku_cfg; in alc_auto_parse_customize_define()
588 spec->cdefine.port_connectivity = ass >> 30; in alc_auto_parse_customize_define()
589 spec->cdefine.enable_pcbeep = (ass & 0x100000) >> 20; in alc_auto_parse_customize_define()
590 spec->cdefine.check_sum = (ass >> 16) & 0xf; in alc_auto_parse_customize_define()
591 spec->cdefine.customization = ass >> 8; in alc_auto_parse_customize_define()
593 spec->cdefine.sku_cfg = ass; in alc_auto_parse_customize_define()
594 spec->cdefine.external_amp = (ass & 0x38) >> 3; in alc_auto_parse_customize_define()
595 spec->cdefine.platform_type = (ass & 0x4) >> 2; in alc_auto_parse_customize_define()
596 spec->cdefine.swap = (ass & 0x2) >> 1; in alc_auto_parse_customize_define()
597 spec->cdefine.override = ass & 0x1; in alc_auto_parse_customize_define()
600 nid, spec->cdefine.sku_cfg); in alc_auto_parse_customize_define()
602 spec->cdefine.port_connectivity); in alc_auto_parse_customize_define()
603 codec_dbg(codec, "SKU: enable_pcbeep=0x%x\n", spec->cdefine.enable_pcbeep); in alc_auto_parse_customize_define()
604 codec_dbg(codec, "SKU: check_sum=0x%08x\n", spec->cdefine.check_sum); in alc_auto_parse_customize_define()
605 codec_dbg(codec, "SKU: customization=0x%08x\n", spec->cdefine.customization); in alc_auto_parse_customize_define()
606 codec_dbg(codec, "SKU: external_amp=0x%x\n", spec->cdefine.external_amp); in alc_auto_parse_customize_define()
607 codec_dbg(codec, "SKU: platform_type=0x%x\n", spec->cdefine.platform_type); in alc_auto_parse_customize_define()
608 codec_dbg(codec, "SKU: swap=0x%x\n", spec->cdefine.swap); in alc_auto_parse_customize_define()
609 codec_dbg(codec, "SKU: override=0x%x\n", spec->cdefine.override); in alc_auto_parse_customize_define()
642 struct alc_spec *spec = codec->spec; in alc_subsystem_id() local
644 if (spec->cdefine.fixup) { in alc_subsystem_id()
645 ass = spec->cdefine.sku_cfg; in alc_subsystem_id()
696 if (spec->init_amp == ALC_INIT_UNDEFINED) { in alc_subsystem_id()
709 spec->init_amp = ALC_INIT_DEFAULT; in alc_subsystem_id()
726 if (!spec->gen.autocfg.hp_pins[0] && in alc_subsystem_id()
727 !(spec->gen.autocfg.line_out_pins[0] && in alc_subsystem_id()
728 spec->gen.autocfg.line_out_type == AUTO_PIN_HP_OUT)) { in alc_subsystem_id()
732 if (found_in_nid_list(nid, spec->gen.autocfg.line_out_pins, in alc_subsystem_id()
733 spec->gen.autocfg.line_outs)) in alc_subsystem_id()
735 spec->gen.autocfg.hp_pins[0] = nid; in alc_subsystem_id()
745 struct alc_spec *spec = codec->spec; in alc_ssid_check() local
748 spec->init_amp = ALC_INIT_DEFAULT; in alc_ssid_check()
758 struct alc_spec *spec = codec->spec; in alc_fixup_inv_dmic() local
760 spec->gen.inv_dmic_split = 1; in alc_fixup_inv_dmic()
783 struct alc_spec *spec = codec->spec; in alc_init() local
785 if (spec->init_hook) in alc_init()
786 spec->init_hook(codec); in alc_init()
789 alc_auto_init_amp(codec, spec->init_amp); in alc_init()
800 struct alc_spec *spec = codec->spec; in alc_shutup() local
805 if (spec && spec->shutup) in alc_shutup()
806 spec->shutup(codec); in alc_shutup()
813 struct alc_spec *spec = codec->spec; in alc_reboot_notify() local
815 if (spec && spec->reboot_notify) in alc_reboot_notify()
816 spec->reboot_notify(codec); in alc_reboot_notify()
840 struct alc_spec *spec = codec->spec; in alc_suspend() local
842 if (spec && spec->power_hook) in alc_suspend()
843 spec->power_hook(codec); in alc_suspend()
851 struct alc_spec *spec = codec->spec; in alc_resume() local
853 if (!spec->no_depop_delay) in alc_resume()
990 static int set_beep_amp(struct alc_spec *spec, hda_nid_t nid, in set_beep_amp() argument
998 knew = snd_hda_gen_add_kctl(&spec->gen, NULL, in set_beep_amp()
1022 struct alc_spec *spec = codec->spec; in has_cdefine_beep() local
1027 return spec->cdefine.enable_pcbeep; in has_cdefine_beep()
1030 #define set_beep_amp(spec, nid, idx, dir) 0 argument
1042 struct alc_spec *spec = codec->spec; in alc_parse_auto_config() local
1043 struct auto_pin_cfg *cfg = &spec->gen.autocfg; in alc_parse_auto_config()
1047 spec->parse_flags); in alc_parse_auto_config()
1064 struct alc_spec *spec = kzalloc(sizeof(*spec), GFP_KERNEL); in alc_alloc_spec() local
1067 if (!spec) in alc_alloc_spec()
1069 codec->spec = spec; in alc_alloc_spec()
1070 snd_hda_gen_spec_init(&spec->gen); in alc_alloc_spec()
1071 spec->gen.mixer_nid = mixer_nid; in alc_alloc_spec()
1072 spec->gen.own_eapd_ctl = 1; in alc_alloc_spec()
1080 kfree(spec); in alc_alloc_spec()
1510 struct alc_spec *spec; in patch_alc880() local
1517 spec = codec->spec; in patch_alc880()
1518 spec->gen.need_dac_fix = 1; in patch_alc880()
1519 spec->gen.beep_nid = 0x01; in patch_alc880()
1532 if (!spec->gen.no_analog) { in patch_alc880()
1533 err = set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc880()
1577 struct alc_spec *spec = codec->spec; in alc260_gpio1_automute() local
1579 alc_update_gpio_data(codec, 0x01, spec->gen.hp_jack_present); in alc260_gpio1_automute()
1585 struct alc_spec *spec = codec->spec; in alc260_fixup_gpio1_toggle() local
1590 spec->gen.automute_hook = alc260_gpio1_automute; in alc260_fixup_gpio1_toggle()
1591 spec->gen.detect_hp = 1; in alc260_fixup_gpio1_toggle()
1592 spec->gen.automute_speaker = 1; in alc260_fixup_gpio1_toggle()
1593 spec->gen.autocfg.hp_pins[0] = 0x0f; /* copy it for automute */ in alc260_fixup_gpio1_toggle()
1603 struct alc_spec *spec = codec->spec; in alc260_fixup_kn1() local
1623 spec->init_amp = ALC_INIT_NONE; in alc260_fixup_kn1()
1631 struct alc_spec *spec = codec->spec; in alc260_fixup_fsc_s7020() local
1633 spec->init_amp = ALC_INIT_NONE; in alc260_fixup_fsc_s7020()
1639 struct alc_spec *spec = codec->spec; in alc260_fixup_fsc_s7020_jwse() local
1641 spec->gen.add_jack_modes = 1; in alc260_fixup_fsc_s7020_jwse()
1642 spec->gen.hp_mic = 1; in alc260_fixup_fsc_s7020_jwse()
1757 struct alc_spec *spec; in patch_alc260() local
1764 spec = codec->spec; in patch_alc260()
1769 spec->gen.prefer_hp_amp = 1; in patch_alc260()
1770 spec->gen.beep_nid = 0x01; in patch_alc260()
1772 spec->shutup = alc_eapd_shutup; in patch_alc260()
1783 if (!spec->gen.no_analog) { in patch_alc260()
1784 err = set_beep_amp(spec, 0x07, 0x05, HDA_INPUT); in patch_alc260()
1863 struct alc_spec *spec = codec->spec; in alc885_fixup_macpro_gpio() local
1865 spec->gpio_write_delay = true; in alc885_fixup_macpro_gpio()
1898 struct alc_spec *spec = codec->spec; in alc889_fixup_mbp_vref() local
1911 spec->gen.keep_vref_in_automute = 1; in alc889_fixup_mbp_vref()
1919 struct alc_spec *spec = codec->spec; in alc889_fixup_mac_pins() local
1928 spec->gen.keep_vref_in_automute = 1; in alc889_fixup_mac_pins()
1968 struct alc_spec *spec = codec->spec; in alc882_fixup_no_primary_hp() local
1970 spec->gen.no_primary_hp = 1; in alc882_fixup_no_primary_hp()
1971 spec->gen.no_multi_io = 1; in alc882_fixup_no_primary_hp()
1984 struct alc_spec *spec = codec->spec; in alc_fixup_dual_codecs() local
1989 spec->gen.suppress_vmaster = 1; in alc_fixup_dual_codecs()
1991 spec->gen.suppress_auto_mute = 1; in alc_fixup_dual_codecs()
1992 spec->gen.suppress_auto_mic = 1; in alc_fixup_dual_codecs()
1994 spec->gen.mixer_nid = 0; in alc_fixup_dual_codecs()
2427 struct alc_spec *spec; in patch_alc882() local
2434 spec = codec->spec; in patch_alc882()
2455 spec->gen.beep_nid = 0x01; in patch_alc882()
2462 if (!spec->gen.no_analog && spec->gen.beep_nid) { in patch_alc882()
2463 err = set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc882()
2602 struct alc_spec *spec; in patch_alc262() local
2609 spec = codec->spec; in patch_alc262()
2610 spec->gen.shared_mic_vref_pin = 0x18; in patch_alc262()
2612 spec->shutup = alc_eapd_shutup; in patch_alc262()
2629 spec->gen.beep_nid = 0x01; in patch_alc262()
2636 if (!spec->gen.no_analog && spec->gen.beep_nid) { in patch_alc262()
2637 err = set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc262()
2753 struct alc_spec *spec; in patch_alc268() local
2761 spec = codec->spec; in patch_alc268()
2762 spec->gen.beep_nid = 0x01; in patch_alc268()
2764 spec->shutup = alc_eapd_shutup; in patch_alc268()
2774 if (err > 0 && !spec->gen.no_analog && in patch_alc268()
2775 spec->gen.autocfg.speaker_pins[0] != 0x1d) { in patch_alc268()
2777 if (!snd_hda_gen_add_kctl(&spec->gen, NULL, in patch_alc268()
2844 struct alc_spec *spec = codec->spec; in alc269_parse_auto_config() local
2847 switch (spec->codec_variant) { in alc269_parse_auto_config()
2906 struct alc_spec *spec = codec->spec; in alc269_shutup() local
2908 if (spec->codec_variant == ALC269_TYPE_ALC269VB) in alc269_shutup()
2910 if (spec->codec_variant == ALC269_TYPE_ALC269VB && in alc269_shutup()
2957 struct alc_spec *spec = codec->spec; in alc282_init() local
2958 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc282_init()
2994 struct alc_spec *spec = codec->spec; in alc282_shutup() local
2995 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc282_shutup()
3072 struct alc_spec *spec = codec->spec; in alc283_init() local
3073 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc283_init()
3076 if (!spec->gen.autocfg.hp_outs) { in alc283_init()
3077 if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT) in alc283_init()
3078 hp_pin = spec->gen.autocfg.line_out_pins[0]; in alc283_init()
3113 struct alc_spec *spec = codec->spec; in alc283_shutup() local
3114 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc283_shutup()
3117 if (!spec->gen.autocfg.hp_outs) { in alc283_shutup()
3118 if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT) in alc283_shutup()
3119 hp_pin = spec->gen.autocfg.line_out_pins[0]; in alc283_shutup()
3154 struct alc_spec *spec = codec->spec; in alc256_init() local
3155 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc256_init()
3190 struct alc_spec *spec = codec->spec; in alc256_shutup() local
3191 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc256_shutup()
3226 struct alc_spec *spec = codec->spec; in alc225_init() local
3227 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc225_init()
3269 struct alc_spec *spec = codec->spec; in alc225_shutup() local
3270 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc225_shutup()
3313 struct alc_spec *spec = codec->spec; in alc_default_init() local
3314 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc_default_init()
3342 struct alc_spec *spec = codec->spec; in alc_default_shutup() local
3343 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc_default_shutup()
3467 struct alc_spec *spec = codec->spec; in alc269_suspend() local
3469 if (spec->has_alc5505_dsp) in alc269_suspend()
3476 struct alc_spec *spec = codec->spec; in alc269_resume() local
3478 if (spec->codec_variant == ALC269_TYPE_ALC269VB) in alc269_resume()
3480 if (spec->codec_variant == ALC269_TYPE_ALC269VB && in alc269_resume()
3487 if (spec->codec_variant == ALC269_TYPE_ALC269VB) in alc269_resume()
3489 if (spec->codec_variant == ALC269_TYPE_ALC269VB && in alc269_resume()
3501 if (spec->gpio_data) in alc269_resume()
3504 if (spec->has_alc5505_dsp) in alc269_resume()
3514 struct alc_spec *spec = codec->spec; in alc269_fixup_pincfg_no_hp_to_lineout() local
3517 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; in alc269_fixup_pincfg_no_hp_to_lineout()
3543 struct alc_spec *spec = codec->spec; in alc269_fixup_headset_mic() local
3546 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc269_fixup_headset_mic()
3570 struct alc_spec *spec = codec->spec; in alc269_fixup_pcm_44k() local
3578 spec->gen.stream_analog_playback = &alc269_44k_pcm_analog_playback; in alc269_fixup_pcm_44k()
3579 spec->gen.stream_analog_capture = &alc269_44k_pcm_analog_capture; in alc269_fixup_pcm_44k()
3605 struct alc_spec *spec = codec->spec; in alc269_fixup_quanta_mute() local
3608 spec->gen.automute_hook = alc269_quanta_automute; in alc269_fixup_quanta_mute()
3614 struct alc_spec *spec = codec->spec; in alc269_x101_hp_automute_hook() local
3619 vref = spec->gen.hp_jack_present ? PIN_VREF80 : 0; in alc269_x101_hp_automute_hook()
3631 struct alc_spec *spec = codec->spec; in alc269_fixup_x101_headset_mic() local
3633 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc269_fixup_x101_headset_mic()
3634 spec->gen.hp_automute_hook = alc269_x101_hp_automute_hook; in alc269_fixup_x101_headset_mic()
3643 struct alc_spec *spec = codec->spec; in alc269_fixup_mic_mute_hook() local
3646 if (spec->mute_led_polarity) in alc269_fixup_mic_mute_hook()
3648 pinval = snd_hda_codec_get_pin_target(codec, spec->mute_led_nid); in alc269_fixup_mic_mute_hook()
3651 if (spec->mute_led_nid) { in alc269_fixup_mic_mute_hook()
3654 snd_hda_set_pin_ctl_cache(codec, spec->mute_led_nid, pinval); in alc269_fixup_mic_mute_hook()
3664 struct alc_spec *spec = codec->spec; in led_power_filter() local
3667 (nid != spec->mute_led_nid && nid != spec->cap_mute_led_nid)) in led_power_filter()
3680 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_mute_led() local
3692 spec->mute_led_polarity = pol; in alc269_fixup_hp_mute_led()
3693 spec->mute_led_nid = pin - 0x0a + 0x18; in alc269_fixup_hp_mute_led()
3694 spec->gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; in alc269_fixup_hp_mute_led()
3695 spec->gen.vmaster_mute_enum = 1; in alc269_fixup_hp_mute_led()
3698 "Detected mute LED for %x:%d\n", spec->mute_led_nid, in alc269_fixup_hp_mute_led()
3699 spec->mute_led_polarity); in alc269_fixup_hp_mute_led()
3708 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_mute_led_micx() local
3711 spec->mute_led_polarity = 0; in alc269_fixup_hp_mute_led_micx()
3712 spec->mute_led_nid = pin; in alc269_fixup_hp_mute_led_micx()
3713 spec->gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; in alc269_fixup_hp_mute_led_micx()
3714 spec->gen.vmaster_mute_enum = 1; in alc269_fixup_hp_mute_led_micx()
3741 struct alc_spec *spec = codec->spec; in alc_update_gpio_led() local
3743 if (spec->mute_led_polarity) in alc_update_gpio_led()
3752 struct alc_spec *spec = codec->spec; in alc_fixup_gpio_mute_hook() local
3754 alc_update_gpio_led(codec, spec->gpio_mute_led_mask, enabled); in alc_fixup_gpio_mute_hook()
3760 struct alc_spec *spec = codec->spec; in alc_gpio_micmute_update() local
3762 alc_update_gpio_led(codec, spec->gpio_mic_led_mask, in alc_gpio_micmute_update()
3763 spec->gen.micmute_led.led_value); in alc_gpio_micmute_update()
3772 struct alc_spec *spec = codec->spec; in alc_fixup_hp_gpio_led() local
3779 spec->gpio_mute_led_mask = mute_mask; in alc_fixup_hp_gpio_led()
3780 spec->gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; in alc_fixup_hp_gpio_led()
3783 spec->gpio_mic_led_mask = micmute_mask; in alc_fixup_hp_gpio_led()
3803 struct alc_spec *spec = codec->spec; in alc_cap_micmute_update() local
3806 if (!spec->cap_mute_led_nid) in alc_cap_micmute_update()
3808 pinval = snd_hda_codec_get_pin_target(codec, spec->cap_mute_led_nid); in alc_cap_micmute_update()
3810 if (spec->gen.micmute_led.led_value) in alc_cap_micmute_update()
3814 snd_hda_set_pin_ctl_cache(codec, spec->cap_mute_led_nid, pinval); in alc_cap_micmute_update()
3820 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_gpio_mic1_led() local
3827 spec->gpio_mask |= 0x10; in alc269_fixup_hp_gpio_mic1_led()
3828 spec->gpio_dir |= 0x10; in alc269_fixup_hp_gpio_mic1_led()
3829 spec->cap_mute_led_nid = 0x18; in alc269_fixup_hp_gpio_mic1_led()
3838 struct alc_spec *spec = codec->spec; in alc280_fixup_hp_gpio4() local
3842 spec->cap_mute_led_nid = 0x18; in alc280_fixup_hp_gpio4()
3852 struct alc_spec *spec = codec->spec; in gpio2_mic_hotkey_event() local
3856 input_report_key(spec->kb_dev, spec->alc_mute_keycode_map[ALC_KEY_MICMUTE_INDEX], 1); in gpio2_mic_hotkey_event()
3857 input_sync(spec->kb_dev); in gpio2_mic_hotkey_event()
3858 input_report_key(spec->kb_dev, spec->alc_mute_keycode_map[ALC_KEY_MICMUTE_INDEX], 0); in gpio2_mic_hotkey_event()
3859 input_sync(spec->kb_dev); in gpio2_mic_hotkey_event()
3864 struct alc_spec *spec = codec->spec; in alc_register_micmute_input_device() local
3867 spec->kb_dev = input_allocate_device(); in alc_register_micmute_input_device()
3868 if (!spec->kb_dev) { in alc_register_micmute_input_device()
3873 spec->alc_mute_keycode_map[ALC_KEY_MICMUTE_INDEX] = KEY_MICMUTE; in alc_register_micmute_input_device()
3875 spec->kb_dev->name = "Microphone Mute Button"; in alc_register_micmute_input_device()
3876 spec->kb_dev->evbit[0] = BIT_MASK(EV_KEY); in alc_register_micmute_input_device()
3877 spec->kb_dev->keycodesize = sizeof(spec->alc_mute_keycode_map[0]); in alc_register_micmute_input_device()
3878 spec->kb_dev->keycodemax = ARRAY_SIZE(spec->alc_mute_keycode_map); in alc_register_micmute_input_device()
3879 spec->kb_dev->keycode = spec->alc_mute_keycode_map; in alc_register_micmute_input_device()
3880 for (i = 0; i < ARRAY_SIZE(spec->alc_mute_keycode_map); i++) in alc_register_micmute_input_device()
3881 set_bit(spec->alc_mute_keycode_map[i], spec->kb_dev->keybit); in alc_register_micmute_input_device()
3883 if (input_register_device(spec->kb_dev)) { in alc_register_micmute_input_device()
3885 input_free_device(spec->kb_dev); in alc_register_micmute_input_device()
3886 spec->kb_dev = NULL; in alc_register_micmute_input_device()
3901 struct alc_spec *spec = codec->spec; in alc280_fixup_hp_gpio2_mic_hotkey() local
3905 spec->init_amp = ALC_INIT_DEFAULT; in alc280_fixup_hp_gpio2_mic_hotkey()
3909 spec->gpio_mask |= 0x06; in alc280_fixup_hp_gpio2_mic_hotkey()
3910 spec->gpio_dir |= 0x02; in alc280_fixup_hp_gpio2_mic_hotkey()
3911 spec->gpio_data |= 0x02; in alc280_fixup_hp_gpio2_mic_hotkey()
3919 if (!spec->kb_dev) in alc280_fixup_hp_gpio2_mic_hotkey()
3924 input_unregister_device(spec->kb_dev); in alc280_fixup_hp_gpio2_mic_hotkey()
3925 spec->kb_dev = NULL; in alc280_fixup_hp_gpio2_mic_hotkey()
3935 struct alc_spec *spec = codec->spec; in alc233_fixup_lenovo_line2_mic_hotkey() local
3939 spec->init_amp = ALC_INIT_DEFAULT; in alc233_fixup_lenovo_line2_mic_hotkey()
3948 if (!spec->kb_dev) in alc233_fixup_lenovo_line2_mic_hotkey()
3953 input_unregister_device(spec->kb_dev); in alc233_fixup_lenovo_line2_mic_hotkey()
3954 spec->kb_dev = NULL; in alc233_fixup_lenovo_line2_mic_hotkey()
3965 struct alc_spec *spec = codec->spec; in alc269_fixup_hp_line1_mic1_led() local
3969 spec->cap_mute_led_nid = 0x18; in alc269_fixup_hp_line1_mic1_led()
4566 struct alc_spec *spec = codec->spec; in alc_determine_headset_type() local
4728 spec->current_headset_type = is_ctia ? ALC_HEADSET_TYPE_CTIA : ALC_HEADSET_TYPE_OMTP; in alc_determine_headset_type()
4733 struct alc_spec *spec = codec->spec; in alc_update_headset_mode() local
4735 hda_nid_t mux_pin = spec->gen.imux_pins[spec->gen.cur_mux[0]]; in alc_update_headset_mode()
4736 hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0]; in alc_update_headset_mode()
4742 else if (mux_pin == spec->headset_mic_pin) in alc_update_headset_mode()
4744 else if (mux_pin == spec->headphone_mic_pin) in alc_update_headset_mode()
4749 if (new_headset_mode == spec->current_headset_mode) { in alc_update_headset_mode()
4757 spec->gen.hp_jack_present = false; in alc_update_headset_mode()
4760 if (spec->current_headset_type == ALC_HEADSET_TYPE_UNKNOWN) in alc_update_headset_mode()
4762 if (spec->current_headset_type == ALC_HEADSET_TYPE_CTIA) in alc_update_headset_mode()
4764 else if (spec->current_headset_type == ALC_HEADSET_TYPE_OMTP) in alc_update_headset_mode()
4766 spec->gen.hp_jack_present = true; in alc_update_headset_mode()
4769 alc_headset_mode_mic_in(codec, hp_pin, spec->headphone_mic_pin); in alc_update_headset_mode()
4770 spec->gen.hp_jack_present = false; in alc_update_headset_mode()
4774 spec->gen.hp_jack_present = true; in alc_update_headset_mode()
4780 if (spec->headphone_mic_pin && spec->headphone_mic_pin != hp_pin) in alc_update_headset_mode()
4781 snd_hda_set_pin_ctl_cache(codec, spec->headphone_mic_pin, in alc_update_headset_mode()
4784 spec->current_headset_mode = new_headset_mode; in alc_update_headset_mode()
4799 struct alc_spec *spec = codec->spec; in alc_update_headset_jack_cb() local
4800 spec->current_headset_type = ALC_HEADSET_TYPE_UNKNOWN; in alc_update_headset_jack_cb()
4807 struct alc_spec *spec = codec->spec; in alc_probe_headset_mode() local
4808 struct auto_pin_cfg *cfg = &spec->gen.autocfg; in alc_probe_headset_mode()
4812 if (cfg->inputs[i].is_headset_mic && !spec->headset_mic_pin) in alc_probe_headset_mode()
4813 spec->headset_mic_pin = cfg->inputs[i].pin; in alc_probe_headset_mode()
4814 if (cfg->inputs[i].is_headphone_mic && !spec->headphone_mic_pin) in alc_probe_headset_mode()
4815 spec->headphone_mic_pin = cfg->inputs[i].pin; in alc_probe_headset_mode()
4818 WARN_ON(spec->gen.cap_sync_hook); in alc_probe_headset_mode()
4819 spec->gen.cap_sync_hook = alc_update_headset_mode_hook; in alc_probe_headset_mode()
4820 spec->gen.automute_hook = alc_update_headset_mode; in alc_probe_headset_mode()
4821 spec->gen.hp_automute_hook = alc_update_headset_jack_cb; in alc_probe_headset_mode()
4827 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode() local
4831 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC | HDA_PINCFG_HEADPHONE_MIC; in alc_fixup_headset_mode()
4837 spec->current_headset_mode = 0; in alc_fixup_headset_mode()
4847 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode_no_hp_mic() local
4848 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc_fixup_headset_mode_no_hp_mic()
4898 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode_alc255_no_hp_mic() local
4899 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc_fixup_headset_mode_alc255_no_hp_mic()
4909 struct alc_spec *spec = codec->spec; in alc288_update_headset_jack_cb() local
4913 alc_update_gpio_data(codec, 0x40, spec->gen.hp_jack_present); in alc288_update_headset_jack_cb()
4921 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode_dell_alc288() local
4923 spec->gpio_mask |= 0x40; in alc_fixup_headset_mode_dell_alc288()
4924 spec->gpio_dir |= 0x40; in alc_fixup_headset_mode_dell_alc288()
4925 spec->gen.hp_automute_hook = alc288_update_headset_jack_cb; in alc_fixup_headset_mode_dell_alc288()
4933 struct alc_spec *spec = codec->spec; in alc_fixup_auto_mute_via_amp() local
4934 spec->gen.auto_mute_via_amp = 1; in alc_fixup_auto_mute_via_amp()
4946 struct alc_spec *spec = codec->spec; in alc_fixup_no_shutup() local
4947 spec->shutup = alc_no_shutup; in alc_fixup_no_shutup()
4955 struct alc_spec *spec = codec->spec; in alc_fixup_disable_aamix() local
4957 spec->gen.mixer_nid = 0; in alc_fixup_disable_aamix()
4970 struct alc_spec *spec = codec->spec; in alc_fixup_tpt440_dock() local
4973 spec->reboot_notify = alc_d3_at_reboot; /* reduce noise */ in alc_fixup_tpt440_dock()
4974 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; in alc_fixup_tpt440_dock()
4988 struct alc_spec *spec = codec->spec; in alc_fixup_tpt470_dock() local
4991 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; in alc_fixup_tpt470_dock()
5005 struct alc_spec *spec = codec->spec; in alc_shutup_dell_xps13() local
5006 int hp_pin = spec->gen.autocfg.hp_pins[0]; in alc_shutup_dell_xps13()
5017 struct alc_spec *spec = codec->spec; in alc_fixup_dell_xps13() local
5018 struct hda_input_mux *imux = &spec->gen.input_mux; in alc_fixup_dell_xps13()
5027 spec->shutup = alc_shutup_dell_xps13; in alc_fixup_dell_xps13()
5032 if (spec->gen.imux_pins[i] == 0x12) { in alc_fixup_dell_xps13()
5033 spec->gen.cur_mux[0] = i; in alc_fixup_dell_xps13()
5044 struct alc_spec *spec = codec->spec; in alc_fixup_headset_mode_alc662() local
5047 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc_fixup_headset_mode_alc662()
5048 spec->gen.hp_mic = 1; /* Mic-in is same pin as headphone */ in alc_fixup_headset_mode_alc662()
5072 struct alc_spec *spec = codec->spec; in find_ext_mic_pin() local
5073 struct auto_pin_cfg *cfg = &spec->gen.autocfg; in find_ext_mic_pin()
5095 struct alc_spec *spec = codec->spec; in alc271_hp_gate_mic_jack() local
5099 int hp_pin = spec->gen.autocfg.hp_pins[0]; in alc271_hp_gate_mic_jack()
5111 struct alc_spec *spec = codec->spec; in alc269_fixup_limit_int_mic_boost() local
5112 struct auto_pin_cfg *cfg = &spec->gen.autocfg; in alc269_fixup_limit_int_mic_boost()
5142 struct alc_spec *spec = codec->spec; in alc283_hp_automute_hook() local
5148 vref = spec->gen.hp_jack_present ? PIN_VREF80 : 0; in alc283_hp_automute_hook()
5158 struct alc_spec *spec = codec->spec; in alc283_fixup_chromebook() local
5164 spec->gen.mixer_nid = 0; in alc283_fixup_chromebook()
5179 struct alc_spec *spec = codec->spec; in alc283_fixup_sense_combo_jack() local
5183 spec->gen.hp_automute_hook = alc283_hp_automute_hook; in alc283_fixup_sense_combo_jack()
5196 struct alc_spec *spec = codec->spec; in asus_tx300_automute() local
5199 spec->gen.mute_bits |= (1ULL << 0x14); in asus_tx300_automute()
5205 struct alc_spec *spec = codec->spec; in alc282_fixup_asus_tx300() local
5213 spec->init_amp = ALC_INIT_DEFAULT; in alc282_fixup_asus_tx300()
5217 spec->gen.auto_mute_via_amp = 1; in alc282_fixup_asus_tx300()
5218 spec->gen.automute_hook = asus_tx300_automute; in alc282_fixup_asus_tx300()
5223 spec->init_amp = ALC_INIT_DEFAULT; in alc282_fixup_asus_tx300()
5280 struct alc_spec *spec = codec->spec; in alc280_hp_gpio4_automute_hook() local
5284 alc_update_gpio_led(codec, 0x10, !spec->gen.hp_jack_present); in alc280_hp_gpio4_automute_hook()
5297 struct alc_spec *spec = codec->spec; in alc280_fixup_hp_9480m() local
5302 spec->gpio_mask |= 0x10; in alc280_fixup_hp_9480m()
5303 spec->gpio_dir |= 0x10; in alc280_fixup_hp_9480m()
5304 spec->gen.hp_automute_hook = alc280_hp_gpio4_automute_hook; in alc280_fixup_hp_9480m()
5312 struct alc_spec *spec = codec->spec; in alc275_fixup_gpio4_off() local
5315 spec->gpio_mask |= 0x04; in alc275_fixup_gpio4_off()
5316 spec->gpio_dir |= 0x04; in alc275_fixup_gpio4_off()
5349 struct alc_spec *spec = codec->spec; in alc274_fixup_bind_dacs() local
5358 spec->gen.preferred_dacs = preferred_pairs; in alc274_fixup_bind_dacs()
7127 struct alc_spec *spec = codec->spec; in alc269_fill_coef() local
7130 if (spec->codec_variant != ALC269_TYPE_ALC269VB) in alc269_fill_coef()
7169 struct alc_spec *spec; in patch_alc269() local
7176 spec = codec->spec; in patch_alc269()
7177 spec->gen.shared_mic_vref_pin = 0x18; in patch_alc269()
7184 spec->shutup = alc_default_shutup; in patch_alc269()
7185 spec->init_hook = alc_default_init; in patch_alc269()
7189 spec->codec_variant = ALC269_TYPE_ALC269VA; in patch_alc269()
7194 spec->cdefine.platform_type == 1) in patch_alc269()
7196 spec->codec_variant = ALC269_TYPE_ALC269VB; in patch_alc269()
7203 spec->codec_variant = ALC269_TYPE_ALC269VC; in patch_alc269()
7206 spec->codec_variant = ALC269_TYPE_ALC269VD; in patch_alc269()
7213 spec->shutup = alc269_shutup; in patch_alc269()
7214 spec->init_hook = alc269_fill_coef; in patch_alc269()
7220 spec->codec_variant = ALC269_TYPE_ALC280; in patch_alc269()
7223 spec->codec_variant = ALC269_TYPE_ALC282; in patch_alc269()
7224 spec->shutup = alc282_shutup; in patch_alc269()
7225 spec->init_hook = alc282_init; in patch_alc269()
7229 spec->codec_variant = ALC269_TYPE_ALC283; in patch_alc269()
7230 spec->shutup = alc283_shutup; in patch_alc269()
7231 spec->init_hook = alc283_init; in patch_alc269()
7235 spec->codec_variant = ALC269_TYPE_ALC284; in patch_alc269()
7238 spec->codec_variant = ALC269_TYPE_ALC293; in patch_alc269()
7242 spec->codec_variant = ALC269_TYPE_ALC286; in patch_alc269()
7243 spec->shutup = alc286_shutup; in patch_alc269()
7246 spec->codec_variant = ALC269_TYPE_ALC298; in patch_alc269()
7250 spec->codec_variant = ALC269_TYPE_ALC255; in patch_alc269()
7251 spec->shutup = alc256_shutup; in patch_alc269()
7252 spec->init_hook = alc256_init; in patch_alc269()
7256 spec->codec_variant = ALC269_TYPE_ALC256; in patch_alc269()
7257 spec->shutup = alc256_shutup; in patch_alc269()
7258 spec->init_hook = alc256_init; in patch_alc269()
7259 spec->gen.mixer_nid = 0; /* ALC256 does not have any loopback mixer path */ in patch_alc269()
7263 spec->codec_variant = ALC269_TYPE_ALC257; in patch_alc269()
7264 spec->shutup = alc256_shutup; in patch_alc269()
7265 spec->init_hook = alc256_init; in patch_alc269()
7266 spec->gen.mixer_nid = 0; in patch_alc269()
7271 spec->codec_variant = ALC269_TYPE_ALC215; in patch_alc269()
7272 spec->shutup = alc225_shutup; in patch_alc269()
7273 spec->init_hook = alc225_init; in patch_alc269()
7274 spec->gen.mixer_nid = 0; in patch_alc269()
7279 spec->codec_variant = ALC269_TYPE_ALC225; in patch_alc269()
7280 spec->shutup = alc225_shutup; in patch_alc269()
7281 spec->init_hook = alc225_init; in patch_alc269()
7282 spec->gen.mixer_nid = 0; /* no loopback on ALC225, ALC295 and ALC299 */ in patch_alc269()
7287 spec->codec_variant = ALC269_TYPE_ALC294; in patch_alc269()
7288 spec->gen.mixer_nid = 0; /* ALC2x4 does not have any loopback mixer path */ in patch_alc269()
7294 spec->codec_variant = ALC269_TYPE_ALC700; in patch_alc269()
7295 spec->gen.mixer_nid = 0; /* ALC700 does not have any loopback mixer path */ in patch_alc269()
7302 spec->has_alc5505_dsp = 1; in patch_alc269()
7303 spec->init_hook = alc5505_dsp_init; in patch_alc269()
7316 spec->gen.beep_nid = 0x01; in patch_alc269()
7323 if (!spec->gen.no_analog && spec->gen.beep_nid && spec->gen.mixer_nid) { in patch_alc269()
7324 err = set_beep_amp(spec, spec->gen.mixer_nid, 0x04, HDA_INPUT); in patch_alc269()
7362 struct alc_spec *spec = codec->spec; in alc861_fixup_asus_amp_vref_0f() local
7372 spec->gen.keep_vref_in_automute = 1; in alc861_fixup_asus_amp_vref_0f()
7434 struct alc_spec *spec; in patch_alc861() local
7441 spec = codec->spec; in patch_alc861()
7442 spec->gen.beep_nid = 0x23; in patch_alc861()
7445 spec->power_hook = alc_power_eapd; in patch_alc861()
7456 if (!spec->gen.no_analog) { in patch_alc861()
7457 err = set_beep_amp(spec, 0x23, 0, HDA_OUTPUT); in patch_alc861()
7504 struct alc_spec *spec = codec->spec; in alc660vd_fixup_asus_gpio1() local
7507 spec->gpio_mask |= 0x02; in alc660vd_fixup_asus_gpio1()
7533 struct alc_spec *spec; in patch_alc861vd() local
7540 spec = codec->spec; in patch_alc861vd()
7541 spec->gen.beep_nid = 0x23; in patch_alc861vd()
7543 spec->shutup = alc_eapd_shutup; in patch_alc861vd()
7553 if (!spec->gen.no_analog) { in patch_alc861vd()
7554 err = set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc861vd()
7627 struct alc_spec *spec = codec->spec; in alc_fixup_bass_chmap() local
7628 spec->gen.pcm_rec[0]->stream[0].chmap = asus_pcm_2_1_chmaps; in alc_fixup_bass_chmap()
7637 struct alc_spec *spec = codec->spec; in gpio_led_power_filter() local
7638 if (nid == codec->core.afg && power_state == AC_PWRST_D3 && spec->gpio_data) in gpio_led_power_filter()
7646 struct alc_spec *spec = codec->spec; in alc662_fixup_led_gpio1() local
7650 spec->mute_led_polarity = 1; in alc662_fixup_led_gpio1()
7658 struct alc_spec *spec = codec->spec; in alc662_usi_automute_hook() local
7663 vref = spec->gen.hp_jack_present ? PIN_VREF80 : 0; in alc662_usi_automute_hook()
7672 struct alc_spec *spec = codec->spec; in alc662_fixup_usi_headset_mic() local
7674 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; in alc662_fixup_usi_headset_mic()
7675 spec->gen.hp_automute_hook = alc662_usi_automute_hook; in alc662_fixup_usi_headset_mic()
8237 struct alc_spec *spec; in patch_alc662() local
8244 spec = codec->spec; in patch_alc662()
8246 spec->shutup = alc_eapd_shutup; in patch_alc662()
8249 spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP; in patch_alc662()
8255 spec->init_hook = alc668_restore_default_value; in patch_alc662()
8267 spec->gen.beep_nid = 0x01; in patch_alc662()
8271 spec->cdefine.platform_type == 1) { in patch_alc662()
8282 if (!spec->gen.no_analog && spec->gen.beep_nid) { in patch_alc662()
8285 err = set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); in patch_alc662()
8291 err = set_beep_amp(spec, 0x0b, 0x04, HDA_INPUT); in patch_alc662()
8294 err = set_beep_amp(spec, 0x0b, 0x03, HDA_INPUT); in patch_alc662()