Lines Matching refs:pin
182 #define update_pin_ctl(codec, pin, val) \ argument
183 snd_hda_codec_update_cache(codec, pin, 0, \
187 static inline void restore_pin_ctl(struct hda_codec *codec, hda_nid_t pin) in restore_pin_ctl() argument
189 update_pin_ctl(codec, pin, snd_hda_codec_get_pin_target(codec, pin)); in restore_pin_ctl()
193 static void set_pin_target(struct hda_codec *codec, hda_nid_t pin, in set_pin_target() argument
196 if (!pin) in set_pin_target()
198 val = snd_hda_correct_pin_ctl(codec, pin, val); in set_pin_target()
199 snd_hda_codec_set_pin_target(codec, pin, val); in set_pin_target()
201 update_pin_ctl(codec, pin, val); in set_pin_target()
472 static hda_nid_t look_for_dac(struct hda_codec *codec, hda_nid_t pin, in look_for_dac() argument
486 if (is_reachable_path(codec, nid, pin)) in look_for_dac()
783 static void set_pin_eapd(struct hda_codec *codec, hda_nid_t pin, bool enable) in set_pin_eapd() argument
787 !(snd_hda_query_pin_caps(codec, pin) & AC_PINCAP_EAPD)) in set_pin_eapd()
793 snd_hda_codec_update_cache(codec, pin, 0, in set_pin_eapd()
1108 hda_nid_t dac, hda_nid_t pin) in try_dac() argument
1110 return is_reachable_path(codec, dac, pin) ? dac : 0; in try_dac()
1129 hda_nid_t pin = pins[i]; in try_assign_dacs() local
1137 dacs[i] = look_for_dac(codec, pin, false); in try_assign_dacs()
1141 if (is_reachable_path(codec, dacs[j], pin)) { in try_assign_dacs()
1153 dac = try_dac(codec, get_primary_out(codec, i), pin); in try_assign_dacs()
1155 dac = try_dac(codec, dacs[0], pin); in try_assign_dacs()
1157 dac = try_dac(codec, get_primary_out(codec, i), pin); in try_assign_dacs()
1165 } else if (is_reachable_path(codec, spec->private_dac_nids[0], pin)) { in try_assign_dacs()
1175 path = snd_hda_add_new_path(codec, dac, pin, -spec->mixer_nid); in try_assign_dacs()
1178 path = snd_hda_add_new_path(codec, dac, pin, 0); in try_assign_dacs()
1195 static hda_nid_t get_dac_if_single(struct hda_codec *codec, hda_nid_t pin) in get_dac_if_single() argument
1205 if (is_reachable_path(codec, nid, pin)) { in get_dac_if_single()
1246 cfg->inputs[i].pin)) in count_multiio_pins()
1283 hda_nid_t nid = cfg->inputs[i].pin; in fill_multi_ios()
1291 if (nid == spec->multi_io[j].pin) in fill_multi_ios()
1312 spec->multi_io[spec->multi_ios].pin = nid; in fill_multi_ios()
1381 hda_nid_t path_dac, dac, pin; in check_aamix_out_path() local
1389 pin = path->path[path->depth - 1]; in check_aamix_out_path()
1390 path = snd_hda_add_new_path(codec, dac, pin, spec->mixer_nid); in check_aamix_out_path()
1401 path = snd_hda_add_new_path(codec, dac, pin, in check_aamix_out_path()
1656 spec->multi_io[0].pin, spec->multi_io[1].pin, in debug_show_configs()
2096 hda_nid_t nid = spec->multi_io[idx].pin; in set_multi_io()
2266 hda_nid_t pin; in update_hp_mic() local
2268 pin = spec->hp_mic_pin; in update_hp_mic()
2272 val = snd_hda_codec_get_pin_target(codec, pin); in update_hp_mic()
2282 val = snd_hda_get_default_vref(codec, pin); in update_hp_mic()
2299 set_pin_target(codec, pin, val, true); in update_hp_mic()
2321 defcfg = snd_hda_codec_get_pincfg(codec, cfg->inputs[0].pin); in create_hp_mic()
2342 cfg->inputs[cfg->num_inputs].pin = nid; in create_hp_mic()
2358 static int create_hp_mic_jack_mode(struct hda_codec *codec, hda_nid_t pin);
2416 static void get_jack_mode_name(struct hda_codec *codec, hda_nid_t pin, in get_jack_mode_name() argument
2422 snd_hda_get_pin_label(codec, pin, &spec->autocfg, name, name_len, &idx); in get_jack_mode_name()
2429 static int get_out_jack_num_items(struct hda_codec *codec, hda_nid_t pin) in get_out_jack_num_items() argument
2433 unsigned int pincap = snd_hda_query_pin_caps(codec, pin); in get_out_jack_num_items()
2447 hda_nid_t pin = pins[i]; in create_out_jack_modes() local
2448 if (pin == spec->hp_mic_pin) { in create_out_jack_modes()
2449 int ret = create_hp_mic_jack_mode(codec, pin); in create_out_jack_modes()
2454 if (get_out_jack_num_items(codec, pin) > 1) { in create_out_jack_modes()
2457 get_jack_mode_name(codec, pin, name, sizeof(name)); in create_out_jack_modes()
2462 knew->private_value = pin; in create_out_jack_modes()
2481 static unsigned int get_vref_caps(struct hda_codec *codec, hda_nid_t pin) in get_vref_caps() argument
2485 pincap = snd_hda_query_pin_caps(codec, pin); in get_vref_caps()
2575 static int get_in_jack_num_items(struct hda_codec *codec, hda_nid_t pin) in get_in_jack_num_items() argument
2580 nitems = hweight32(get_vref_caps(codec, pin)); in get_in_jack_num_items()
2584 static int create_in_jack_mode(struct hda_codec *codec, hda_nid_t pin) in create_in_jack_mode() argument
2591 if (pin == spec->hp_mic_pin) in create_in_jack_mode()
2595 defcfg = snd_hda_codec_get_pincfg(codec, pin); in create_in_jack_mode()
2600 if (get_in_jack_num_items(codec, pin) <= 1) in create_in_jack_mode()
2603 get_jack_mode_name(codec, pin, name, sizeof(name)); in create_in_jack_mode()
2607 knew->private_value = pin; in create_in_jack_mode()
2721 static int create_hp_mic_jack_mode(struct hda_codec *codec, hda_nid_t pin) in create_hp_mic_jack_mode() argument
2726 if (get_out_jack_num_items(codec, pin) <= 1 && in create_hp_mic_jack_mode()
2727 get_in_jack_num_items(codec, pin) <= 1) in create_hp_mic_jack_mode()
2733 knew->private_value = pin; in create_hp_mic_jack_mode()
2759 hda_nid_t pin, const char *ctlname, int ctlidx, in new_analog_input() argument
2771 path = snd_hda_add_new_path(codec, pin, mix_nid, 0); in new_analog_input()
2919 static int parse_capture_source(struct hda_codec *codec, hda_nid_t pin, in parse_capture_source() argument
2933 if (!is_reachable_path(codec, pin, adc)) in parse_capture_source()
2935 path = snd_hda_add_new_path(codec, pin, adc, anchor); in parse_capture_source()
2943 if (spec->hp_mic_pin == pin) in parse_capture_source()
2945 spec->imux_pins[imux->num_items] = pin; in parse_capture_source()
2966 hda_nid_t pin = cfg->inputs[i].pin; in fill_input_pin_labels() local
2970 if (!is_input_pin(codec, pin)) in fill_input_pin_labels()
3010 hda_nid_t pin; in create_input_ctls() local
3012 pin = cfg->inputs[i].pin; in create_input_ctls()
3013 if (!is_input_pin(codec, pin)) in create_input_ctls()
3018 val |= snd_hda_get_default_vref(codec, pin); in create_input_ctls()
3019 if (pin != spec->hp_mic_pin) in create_input_ctls()
3020 set_pin_target(codec, pin, val, false); in create_input_ctls()
3023 if (is_reachable_path(codec, pin, mixer)) { in create_input_ctls()
3024 err = new_analog_input(codec, i, pin, in create_input_ctls()
3033 err = parse_capture_source(codec, pin, i, num_adcs, in create_input_ctls()
3039 err = create_in_jack_mode(codec, pin); in create_input_ctls()
3255 if (cfg->inputs[i].pin != nid) in is_inv_dmic_pin()
3588 hda_nid_t dig_nid, pin; in parse_digital() local
3593 pin = spec->autocfg.dig_out_pins[i]; in parse_digital()
3594 dig_nid = look_for_dac(codec, pin, true); in parse_digital()
3597 path = snd_hda_add_new_path(codec, dig_nid, pin, 0); in parse_digital()
3603 set_pin_target(codec, pin, PIN_OUT, false); in parse_digital()
3617 pin = spec->autocfg.dig_in_pin; in parse_digital()
3625 path = snd_hda_add_new_path(codec, pin, dig_nid, 0); in parse_digital()
3631 set_pin_target(codec, pin, PIN_IN, false); in parse_digital()
3841 hda_nid_t pin = spec->am_entry[i].pin; in snd_hda_gen_mic_autoswitch() local
3843 if (snd_hda_codec_get_pin_target(codec, pin) & AC_PINCTL_OUT_EN) in snd_hda_gen_mic_autoswitch()
3845 if (snd_hda_jack_detect(codec, pin)) { in snd_hda_gen_mic_autoswitch()
4070 find_idx_in_nid_list(spec->am_entry[i].pin, in auto_mic_check_imux()
4079 spec->am_entry[i].pin, in auto_mic_check_imux()
4109 hda_nid_t nid = cfg->inputs[i].pin; in check_auto_mic_availability()
4135 spec->am_entry[num_pins].pin = nid; in check_auto_mic_availability()
4157 spec->am_entry[0].pin, in check_auto_mic_availability()
4158 spec->am_entry[1].pin, in check_auto_mic_availability()
4159 spec->am_entry[2].pin); in check_auto_mic_availability()
4943 hda_nid_t pin; in set_output_and_unmute() local
4948 pin = path->path[path->depth - 1]; in set_output_and_unmute()
4949 restore_pin_ctl(codec, pin); in set_output_and_unmute()
4952 set_pin_eapd(codec, pin, path->active); in set_output_and_unmute()
4993 hda_nid_t pin = spec->multi_io[i].pin; in init_multi_io() local
5000 snd_hda_codec_get_pin_target(codec, pin); in init_multi_io()
5014 hda_nid_t nid = cfg->inputs[i].pin; in init_analog_input()
5062 hda_nid_t pin; in init_digital() local
5066 pin = spec->autocfg.dig_in_pin; in init_digital()
5067 if (pin) { in init_digital()
5068 restore_pin_ctl(codec, pin); in init_digital()
5081 struct hda_pincfg *pin = snd_array_elem(&codec->init_pins, i); in clear_unsol_on_unused_pins() local
5082 hda_nid_t nid = pin->nid; in clear_unsol_on_unused_pins()