Lines Matching refs:nid
148 hda_nid_t nid; member
155 hda_nid_t nid; member
505 hda_nid_t nid = spec->amp_nids[spec->cur_amux]; in stac92xx_amp_volume_get() local
508 kcontrol->private_value |= nid; in stac92xx_amp_volume_get()
518 hda_nid_t nid = spec->amp_nids[spec->cur_amux]; in stac92xx_amp_volume_put() local
521 kcontrol->private_value |= nid; in stac92xx_amp_volume_put()
583 hda_nid_t nid; in stac92xx_smux_enum_put() local
592 nid = spec->multiout.dig_out_nid; in stac92xx_smux_enum_put()
594 nid = codec->slave_dig_outs[smux_idx - 1]; in stac92xx_smux_enum_put()
600 snd_hda_codec_amp_stereo(codec, nid, HDA_OUTPUT, 0, in stac92xx_smux_enum_put()
942 #define STAC_AMP_VOL(xname, nid, chs, idx, dir) \ argument
954 .private_value = HDA_COMPOSE_AMP_VAL(nid, chs, idx, dir) \
1233 static int stac92xx_add_jack(struct hda_codec *codec, hda_nid_t nid, int type);
1239 hda_nid_t nid; in stac92xx_build_controls() local
1315 nid = cfg->hp_pins[i]; in stac92xx_build_controls()
1319 err = stac92xx_add_jack(codec, nid, type); in stac92xx_build_controls()
1331 nid = cfg->input_pins[i]; in stac92xx_build_controls()
1332 if (nid) { in stac92xx_build_controls()
1333 err = stac92xx_add_jack(codec, nid, in stac92xx_build_controls()
2301 hda_nid_t nid = spec->pin_nids[i]; in stac92xx_save_bios_config_regs() local
2304 pin_cfg = snd_hda_codec_read(codec, nid, 0, in stac92xx_save_bios_config_regs()
2307 nid, pin_cfg); in stac92xx_save_bios_config_regs()
2368 static void stac_change_pin_config(struct hda_codec *codec, hda_nid_t nid, in stac_change_pin_config() argument
2375 if (spec->pin_nids[i] == nid) { in stac_change_pin_config()
2377 stac92xx_set_config_reg(codec, nid, cfg); in stac_change_pin_config()
2464 hda_nid_t nid = spec->adc_nids[substream->number]; in stac92xx_capture_pcm_prepare() local
2468 snd_hda_codec_write(codec, nid, 0, in stac92xx_capture_pcm_prepare()
2471 snd_hda_codec_setup_stream(codec, nid, stream_tag, 0, format); in stac92xx_capture_pcm_prepare()
2480 hda_nid_t nid = spec->adc_nids[substream->number]; in stac92xx_capture_pcm_cleanup() local
2482 snd_hda_codec_cleanup_stream(codec, nid); in stac92xx_capture_pcm_cleanup()
2484 snd_hda_codec_write(codec, nid, 0, in stac92xx_capture_pcm_cleanup()
2513 .nid = 0x02, /* NID to query formats and rates */
2525 .nid = 0x06, /* NID to query formats and rates */
2553 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = in stac92xx_build_pcms()
2556 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->adc_nids[0]; in stac92xx_build_pcms()
2573 info->stream[SNDRV_PCM_STREAM_PLAYBACK].nid = spec->multiout.dig_out_nid; in stac92xx_build_pcms()
2577 info->stream[SNDRV_PCM_STREAM_CAPTURE].nid = spec->dig_in_nid; in stac92xx_build_pcms()
2584 static unsigned int stac92xx_get_vref(struct hda_codec *codec, hda_nid_t nid) in stac92xx_get_vref() argument
2586 unsigned int pincap = snd_hda_param_read(codec, nid, in stac92xx_get_vref()
2600 static void stac92xx_auto_set_pinctl(struct hda_codec *codec, hda_nid_t nid, int pin_type) in stac92xx_auto_set_pinctl() argument
2603 snd_hda_codec_write_cache(codec, nid, 0, in stac92xx_auto_set_pinctl()
2619 static void stac_issue_unsol_event(struct hda_codec *codec, hda_nid_t nid,
2627 int nid = kcontrol->private_value; in stac92xx_hp_switch_put() local
2629 spec->hp_switch = ucontrol->value.integer.value[0] ? nid : 0; in stac92xx_hp_switch_put()
2634 stac_issue_unsol_event(codec, nid, STAC_HP_EVENT); in stac92xx_hp_switch_put()
2655 hda_nid_t nid = kcontrol->private_value >> 8; in stac92xx_io_switch_put() local
2662 stac92xx_auto_set_pinctl(codec, nid, AC_PINCTL_OUT_EN); in stac92xx_io_switch_put()
2666 pinctl |= stac92xx_get_vref(codec, nid); in stac92xx_io_switch_put()
2667 stac92xx_auto_set_pinctl(codec, nid, pinctl); in stac92xx_io_switch_put()
2674 stac_issue_unsol_event(codec, nid, STAC_HP_EVENT); in stac92xx_io_switch_put()
2696 hda_nid_t nid = kcontrol->private_value & 0xff; in stac92xx_clfe_switch_put() local
2704 snd_hda_codec_write_cache(codec, nid, 0, AC_VERB_SET_EAPD_BTLENABLE, in stac92xx_clfe_switch_put()
2804 hda_nid_t nid; in check_line_out_switch() local
2809 nid = cfg->input_pins[AUTO_PIN_LINE]; in check_line_out_switch()
2810 pincap = snd_hda_param_read(codec, nid, AC_PAR_PIN_CAP); in check_line_out_switch()
2812 return nid; in check_line_out_switch()
2828 hda_nid_t nid = cfg->input_pins[mic_pin]; in check_mic_out_switch() local
2829 def_conf = snd_hda_codec_read(codec, nid, 0, in check_mic_out_switch()
2834 pincap = snd_hda_param_read(codec, nid, AC_PAR_PIN_CAP); in check_mic_out_switch()
2836 return nid; in check_mic_out_switch()
2846 static int is_in_dac_nids(struct sigmatel_spec *spec, hda_nid_t nid) in is_in_dac_nids() argument
2851 if (spec->multiout.dac_nids[i] == nid) in is_in_dac_nids()
2858 static int check_all_dac_nids(struct sigmatel_spec *spec, hda_nid_t nid) in check_all_dac_nids() argument
2861 if (is_in_dac_nids(spec, nid)) in check_all_dac_nids()
2864 if (spec->hp_dacs[i] == nid) in check_all_dac_nids()
2867 if (spec->speaker_dacs[i] == nid) in check_all_dac_nids()
2872 static hda_nid_t get_unassigned_dac(struct hda_codec *codec, hda_nid_t nid) in get_unassigned_dac() argument
2879 conn_len = snd_hda_get_connections(codec, nid, conn, in get_unassigned_dac()
2892 snd_hda_codec_write_cache(codec, nid, 0, in get_unassigned_dac()
2901 static int add_spec_dacs(struct sigmatel_spec *spec, hda_nid_t nid);
2902 static int add_spec_extra_dacs(struct sigmatel_spec *spec, hda_nid_t nid);
2916 hda_nid_t nid, dac; in stac92xx_auto_fill_dac_nids() local
2919 nid = cfg->line_out_pins[i]; in stac92xx_auto_fill_dac_nids()
2920 dac = get_unassigned_dac(codec, nid); in stac92xx_auto_fill_dac_nids()
2932 __func__, nid); in stac92xx_auto_fill_dac_nids()
2939 nid = check_line_out_switch(codec); in stac92xx_auto_fill_dac_nids()
2940 if (nid) { in stac92xx_auto_fill_dac_nids()
2941 dac = get_unassigned_dac(codec, nid); in stac92xx_auto_fill_dac_nids()
2944 nid, cfg->line_outs); in stac92xx_auto_fill_dac_nids()
2945 cfg->line_out_pins[cfg->line_outs] = nid; in stac92xx_auto_fill_dac_nids()
2947 spec->line_switch = nid; in stac92xx_auto_fill_dac_nids()
2952 nid = check_mic_out_switch(codec); in stac92xx_auto_fill_dac_nids()
2953 if (nid) { in stac92xx_auto_fill_dac_nids()
2954 dac = get_unassigned_dac(codec, nid); in stac92xx_auto_fill_dac_nids()
2957 nid, cfg->line_outs); in stac92xx_auto_fill_dac_nids()
2958 cfg->line_out_pins[cfg->line_outs] = nid; in stac92xx_auto_fill_dac_nids()
2960 spec->mic_switch = nid; in stac92xx_auto_fill_dac_nids()
2966 nid = cfg->hp_pins[i]; in stac92xx_auto_fill_dac_nids()
2967 dac = get_unassigned_dac(codec, nid); in stac92xx_auto_fill_dac_nids()
2978 nid = cfg->speaker_pins[i]; in stac92xx_auto_fill_dac_nids()
2979 dac = get_unassigned_dac(codec, nid); in stac92xx_auto_fill_dac_nids()
2997 static int create_controls(struct sigmatel_spec *spec, const char *pfx, hda_nid_t nid, int chs) in create_controls() argument
3004 HDA_COMPOSE_AMP_VAL(nid, chs, 0, HDA_OUTPUT)); in create_controls()
3009 HDA_COMPOSE_AMP_VAL(nid, chs, 0, HDA_OUTPUT)); in create_controls()
3015 static int add_spec_dacs(struct sigmatel_spec *spec, hda_nid_t nid) in add_spec_dacs() argument
3018 printk(KERN_WARNING "stac92xx: No space for DAC 0x%x\n", nid); in add_spec_dacs()
3021 spec->multiout.dac_nids[spec->multiout.num_dacs] = nid; in add_spec_dacs()
3027 static int add_spec_extra_dacs(struct sigmatel_spec *spec, hda_nid_t nid) in add_spec_extra_dacs() argument
3032 spec->multiout.extra_out_nid[i] = nid; in add_spec_extra_dacs()
3036 printk(KERN_WARNING "stac92xx: No space for extra DAC 0x%x\n", nid); in add_spec_extra_dacs()
3040 static int is_unique_dac(struct sigmatel_spec *spec, hda_nid_t nid) in is_unique_dac() argument
3046 if (spec->multiout.hp_nid == nid) in is_unique_dac()
3049 if (spec->multiout.extra_out_nid[i] == nid) in is_unique_dac()
3062 hda_nid_t nid = 0; in stac92xx_auto_create_multi_out_ctls() local
3067 nid = spec->multiout.dac_nids[i]; in stac92xx_auto_create_multi_out_ctls()
3070 err = create_controls(spec, "Center", nid, 1); in stac92xx_auto_create_multi_out_ctls()
3073 err = create_controls(spec, "LFE", nid, 2); in stac92xx_auto_create_multi_out_ctls()
3077 wid_caps = get_wcaps(codec, nid); in stac92xx_auto_create_multi_out_ctls()
3082 "Swap Center/LFE Playback Switch", nid); in stac92xx_auto_create_multi_out_ctls()
3091 if (!i && is_unique_dac(spec, nid)) { in stac92xx_auto_create_multi_out_ctls()
3101 err = create_controls(spec, name, nid, 3); in stac92xx_auto_create_multi_out_ctls()
3140 hda_nid_t nid; in stac92xx_auto_create_hp_ctls() local
3153 nid = spec->hp_dacs[i]; in stac92xx_auto_create_hp_ctls()
3154 if (!nid) in stac92xx_auto_create_hp_ctls()
3156 err = create_controls(spec, pfxs[nums++], nid, 3); in stac92xx_auto_create_hp_ctls()
3167 nid = spec->speaker_dacs[i]; in stac92xx_auto_create_hp_ctls()
3168 if (!nid) in stac92xx_auto_create_hp_ctls()
3170 err = create_controls(spec, pfxs[nums++], nid, 3); in stac92xx_auto_create_hp_ctls()
3241 hda_nid_t nid) in stac92xx_auto_create_beep_ctls() argument
3244 u32 caps = query_amp_caps(codec, nid, HDA_OUTPUT); in stac92xx_auto_create_beep_ctls()
3251 HDA_COMPOSE_AMP_VAL(nid, 1, 0, HDA_OUTPUT)); in stac92xx_auto_create_beep_ctls()
3260 HDA_COMPOSE_AMP_VAL(nid, 1, 0, HDA_OUTPUT)); in stac92xx_auto_create_beep_ctls()
3307 int wcaps, nid, i, err = 0; in stac92xx_auto_create_mux_input_ctls() local
3310 nid = spec->mux_nids[i]; in stac92xx_auto_create_mux_input_ctls()
3311 wcaps = get_wcaps(codec, nid); in stac92xx_auto_create_mux_input_ctls()
3316 HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT)); in stac92xx_auto_create_mux_input_ctls()
3376 hda_nid_t nid; in stac92xx_auto_create_dmic_input_ctls() local
3390 nid = spec->dmic_nids[i]; in stac92xx_auto_create_dmic_input_ctls()
3396 if (con_lst[j] == nid) { in stac92xx_auto_create_dmic_input_ctls()
3402 wcaps = get_wcaps(codec, nid) & in stac92xx_auto_create_dmic_input_ctls()
3412 HDA_COMPOSE_AMP_VAL(nid, 3, 0, in stac92xx_auto_create_dmic_input_ctls()
3483 hda_nid_t nid = spec->autocfg.line_out_pins[i]; in stac92xx_auto_init_multi_out() local
3484 stac92xx_auto_set_pinctl(codec, nid, AC_PINCTL_OUT_EN); in stac92xx_auto_init_multi_out()
3565 hda_nid_t nid = spec->autocfg.mono_out_pin; in stac92xx_parse_auto_config() local
3571 HDA_COMPOSE_AMP_VAL(nid, 1, 0, dir)); in stac92xx_parse_auto_config()
3580 HDA_COMPOSE_AMP_VAL(nid, 1, 0, dir)); in stac92xx_parse_auto_config()
3611 hda_nid_t nid = spec->digbeep_nid; in stac92xx_parse_auto_config() local
3614 err = stac92xx_auto_create_beep_ctls(codec, nid); in stac92xx_parse_auto_config()
3617 err = snd_hda_attach_beep_device(codec, nid); in stac92xx_parse_auto_config()
3621 caps = query_amp_caps(codec, nid, HDA_OUTPUT); in stac92xx_parse_auto_config()
3830 hda_nid_t nid, int type) in stac92xx_add_jack() argument
3835 int def_conf = snd_hda_codec_read(codec, nid, in stac92xx_add_jack()
3847 jack->nid = nid; in stac92xx_add_jack()
3861 static int stac_add_event(struct sigmatel_spec *spec, hda_nid_t nid, in stac_add_event() argument
3870 event->nid = nid; in stac_add_event()
3879 hda_nid_t nid, unsigned char type) in stac_get_event() argument
3886 if (event->nid == nid && event->type == type) in stac_get_event()
3906 static void enable_pin_detect(struct hda_codec *codec, hda_nid_t nid, in enable_pin_detect() argument
3912 if (!(get_wcaps(codec, nid) & AC_WCAP_UNSOL_CAP)) in enable_pin_detect()
3914 event = stac_get_event(codec, nid, type); in enable_pin_detect()
3918 tag = stac_add_event(codec->spec, nid, type, 0); in enable_pin_detect()
3921 snd_hda_codec_write_cache(codec, nid, 0, in enable_pin_detect()
3926 static int is_nid_hp_pin(struct auto_pin_cfg *cfg, hda_nid_t nid) in is_nid_hp_pin() argument
3930 if (cfg->hp_pins[i] == nid) in is_nid_hp_pin()
3948 static void stac_toggle_power_map(struct hda_codec *codec, hda_nid_t nid,
3980 hda_nid_t nid = cfg->hp_pins[i]; in stac92xx_init() local
3981 enable_pin_detect(codec, nid, STAC_HP_EVENT); in stac92xx_init()
3998 hda_nid_t nid = cfg->input_pins[i]; in stac92xx_init() local
3999 if (nid) { in stac92xx_init()
4003 pinctl = stac92xx_get_vref(codec, nid); in stac92xx_init()
4005 stac92xx_auto_set_pinctl(codec, nid, pinctl); in stac92xx_init()
4007 pinctl = snd_hda_codec_read(codec, nid, 0, in stac92xx_init()
4012 stac92xx_auto_set_pinctl(codec, nid, in stac92xx_init()
4016 conf = snd_hda_codec_read(codec, nid, 0, in stac92xx_init()
4019 enable_pin_detect(codec, nid, in stac92xx_init()
4021 stac_issue_unsol_event(codec, nid, in stac92xx_init()
4036 hda_nid_t nid = spec->pwr_nids[i]; in stac92xx_init() local
4041 stac_toggle_power_map(codec, nid, 1); in stac92xx_init()
4045 if (is_nid_hp_pin(cfg, nid)) in stac92xx_init()
4048 pinctl = snd_hda_codec_read(codec, nid, 0, in stac92xx_init()
4055 stac_toggle_power_map(codec, nid, 1); in stac92xx_init()
4058 def_conf = snd_hda_codec_read(codec, nid, 0, in stac92xx_init()
4065 stac_toggle_power_map(codec, nid, 1); in stac92xx_init()
4068 if (!stac_get_event(codec, nid, STAC_INSERT_EVENT)) { in stac92xx_init()
4069 enable_pin_detect(codec, nid, STAC_PWR_EVENT); in stac92xx_init()
4070 stac_issue_unsol_event(codec, nid, STAC_PWR_EVENT); in stac92xx_init()
4121 static void stac92xx_set_pinctl(struct hda_codec *codec, hda_nid_t nid, in stac92xx_set_pinctl() argument
4124 unsigned int pin_ctl = snd_hda_codec_read(codec, nid, in stac92xx_set_pinctl()
4134 if (nid == spec->line_switch || nid == spec->mic_switch) in stac92xx_set_pinctl()
4143 snd_hda_codec_write_cache(codec, nid, 0, in stac92xx_set_pinctl()
4148 static void stac92xx_reset_pinctl(struct hda_codec *codec, hda_nid_t nid, in stac92xx_reset_pinctl() argument
4151 unsigned int pin_ctl = snd_hda_codec_read(codec, nid, in stac92xx_reset_pinctl()
4153 snd_hda_codec_write_cache(codec, nid, 0, in stac92xx_reset_pinctl()
4158 static int get_pin_presence(struct hda_codec *codec, hda_nid_t nid) in get_pin_presence() argument
4160 if (!nid) in get_pin_presence()
4162 if (snd_hda_codec_read(codec, nid, 0, AC_VERB_GET_PIN_SENSE, 0x00) in get_pin_presence()
4266 static void stac_toggle_power_map(struct hda_codec *codec, hda_nid_t nid, in stac_toggle_power_map() argument
4273 if (spec->pwr_nids[idx] == nid) in stac_toggle_power_map()
4295 static void stac92xx_pin_sense(struct hda_codec *codec, hda_nid_t nid) in stac92xx_pin_sense() argument
4297 stac_toggle_power_map(codec, nid, get_pin_presence(codec, nid)); in stac92xx_pin_sense()
4300 static void stac92xx_report_jack(struct hda_codec *codec, hda_nid_t nid) in stac92xx_report_jack() argument
4308 if (jacks->nid == nid) { in stac92xx_report_jack()
4310 snd_hda_codec_read(codec, nid, in stac92xx_report_jack()
4319 get_pin_presence(codec, nid) in stac92xx_report_jack()
4327 static void stac_issue_unsol_event(struct hda_codec *codec, hda_nid_t nid, in stac_issue_unsol_event() argument
4330 struct sigmatel_event *event = stac_get_event(codec, nid, type); in stac_issue_unsol_event()
4354 stac92xx_pin_sense(codec, event->nid); in stac92xx_unsol_event()
4355 stac92xx_report_jack(codec, event->nid); in stac92xx_unsol_event()
4369 struct hda_codec *codec, hda_nid_t nid) in stac92hd_proc_hook() argument
4371 if (nid == codec->afg) in stac92hd_proc_hook()
4373 snd_hda_codec_read(codec, nid, 0, 0x0fec, 0x0)); in stac92hd_proc_hook()
4386 struct hda_codec *codec, hda_nid_t nid) in stac92hd7x_proc_hook() argument
4388 stac92hd_proc_hook(buffer, codec, nid); in stac92hd7x_proc_hook()
4389 if (nid == codec->afg) in stac92hd7x_proc_hook()
4394 struct hda_codec *codec, hda_nid_t nid) in stac9205_proc_hook() argument
4396 if (nid == codec->afg) in stac9205_proc_hook()
4401 struct hda_codec *codec, hda_nid_t nid) in stac927x_proc_hook() argument
4403 if (nid == codec->afg) in stac927x_proc_hook()