Lines Matching refs:pin_nid
68 hda_nid_t pin_nid; member
97 int (*pin_get_eld)(struct hda_codec *codec, hda_nid_t pin_nid,
100 void (*pin_setup_infoframe)(struct hda_codec *codec, hda_nid_t pin_nid,
105 int (*pin_hbr_setup)(struct hda_codec *codec, hda_nid_t pin_nid,
109 hda_nid_t pin_nid, int dev_id, u32 stream_tag,
243 hda_nid_t pin_nid, int dev_id) in pin_id_to_pin_index() argument
258 if ((per_pin->pin_nid == pin_nid) && in pin_id_to_pin_index()
263 codec_warn(codec, "HDMI: pin NID 0x%x not registered\n", pin_nid); in pin_id_to_pin_index()
427 static void hdmi_get_dip_index(struct hda_codec *codec, hda_nid_t pin_nid, in hdmi_get_dip_index() argument
432 val = snd_hda_codec_read(codec, pin_nid, 0, in hdmi_get_dip_index()
440 static void hdmi_set_dip_index(struct hda_codec *codec, hda_nid_t pin_nid, in hdmi_set_dip_index() argument
447 snd_hda_codec_write(codec, pin_nid, 0, AC_VERB_SET_HDMI_DIP_INDEX, val); in hdmi_set_dip_index()
450 static void hdmi_write_dip_byte(struct hda_codec *codec, hda_nid_t pin_nid, in hdmi_write_dip_byte() argument
453 snd_hda_codec_write(codec, pin_nid, 0, AC_VERB_SET_HDMI_DIP_DATA, val); in hdmi_write_dip_byte()
456 static void hdmi_init_pin(struct hda_codec *codec, hda_nid_t pin_nid) in hdmi_init_pin() argument
462 if (get_wcaps(codec, pin_nid) & AC_WCAP_OUT_AMP) in hdmi_init_pin()
463 snd_hda_codec_write(codec, pin_nid, 0, in hdmi_init_pin()
475 snd_hda_codec_write(codec, pin_nid, 0, in hdmi_init_pin()
550 hda_nid_t pin_nid) in hdmi_start_infoframe_trans() argument
552 hdmi_set_dip_index(codec, pin_nid, 0x0, 0x0); in hdmi_start_infoframe_trans()
553 snd_hda_codec_write(codec, pin_nid, 0, AC_VERB_SET_HDMI_DIP_XMIT, in hdmi_start_infoframe_trans()
561 hda_nid_t pin_nid) in hdmi_stop_infoframe_trans() argument
563 hdmi_set_dip_index(codec, pin_nid, 0x0, 0x0); in hdmi_stop_infoframe_trans()
564 snd_hda_codec_write(codec, pin_nid, 0, AC_VERB_SET_HDMI_DIP_XMIT, in hdmi_stop_infoframe_trans()
568 static void hdmi_debug_dip_size(struct hda_codec *codec, hda_nid_t pin_nid) in hdmi_debug_dip_size() argument
574 size = snd_hdmi_get_eld_size(codec, pin_nid); in hdmi_debug_dip_size()
578 size = snd_hda_codec_read(codec, pin_nid, 0, in hdmi_debug_dip_size()
585 static void hdmi_clear_dip_buffers(struct hda_codec *codec, hda_nid_t pin_nid) in hdmi_clear_dip_buffers() argument
592 size = snd_hda_codec_read(codec, pin_nid, 0, in hdmi_clear_dip_buffers()
597 hdmi_set_dip_index(codec, pin_nid, i, 0x0); in hdmi_clear_dip_buffers()
599 hdmi_write_dip_byte(codec, pin_nid, 0x0); in hdmi_clear_dip_buffers()
600 hdmi_get_dip_index(codec, pin_nid, &pi, &bi); in hdmi_clear_dip_buffers()
629 hda_nid_t pin_nid, in hdmi_fill_audio_infoframe() argument
634 hdmi_debug_dip_size(codec, pin_nid); in hdmi_fill_audio_infoframe()
635 hdmi_clear_dip_buffers(codec, pin_nid); /* be paranoid */ in hdmi_fill_audio_infoframe()
637 hdmi_set_dip_index(codec, pin_nid, 0x0, 0x0); in hdmi_fill_audio_infoframe()
639 hdmi_write_dip_byte(codec, pin_nid, dip[i]); in hdmi_fill_audio_infoframe()
642 static bool hdmi_infoframe_uptodate(struct hda_codec *codec, hda_nid_t pin_nid, in hdmi_infoframe_uptodate() argument
648 hdmi_set_dip_index(codec, pin_nid, 0x0, 0x0); in hdmi_infoframe_uptodate()
649 if (snd_hda_codec_read(codec, pin_nid, 0, AC_VERB_GET_HDMI_DIP_XMIT, 0) in hdmi_infoframe_uptodate()
654 val = snd_hda_codec_read(codec, pin_nid, 0, in hdmi_infoframe_uptodate()
672 hda_nid_t pin_nid, int dev_id, in hdmi_pin_setup_infoframe() argument
706 codec_dbg(codec, "HDMI: unknown connection type at pin NID 0x%x\n", pin_nid); in hdmi_pin_setup_infoframe()
710 snd_hda_set_dev_select(codec, pin_nid, dev_id); in hdmi_pin_setup_infoframe()
717 if (!hdmi_infoframe_uptodate(codec, pin_nid, ai.bytes, in hdmi_pin_setup_infoframe()
720 __func__, pin_nid, active_channels, ca); in hdmi_pin_setup_infoframe()
721 hdmi_stop_infoframe_trans(codec, pin_nid); in hdmi_pin_setup_infoframe()
722 hdmi_fill_audio_infoframe(codec, pin_nid, in hdmi_pin_setup_infoframe()
724 hdmi_start_infoframe_trans(codec, pin_nid); in hdmi_pin_setup_infoframe()
734 hda_nid_t pin_nid = per_pin->pin_nid; in hdmi_setup_audio_infoframe() local
744 snd_hda_set_dev_select(codec, pin_nid, dev_id); in hdmi_setup_audio_infoframe()
747 if (get_wcaps(codec, pin_nid) & AC_WCAP_OUT_AMP) in hdmi_setup_audio_infoframe()
748 snd_hda_codec_write(codec, pin_nid, 0, in hdmi_setup_audio_infoframe()
768 pin_nid, non_pcm, ca, channels, in hdmi_setup_audio_infoframe()
771 spec->ops.pin_setup_infoframe(codec, pin_nid, dev_id, in hdmi_setup_audio_infoframe()
902 static int hdmi_pin_hbr_setup(struct hda_codec *codec, hda_nid_t pin_nid, in hdmi_pin_hbr_setup() argument
907 if (snd_hda_query_pin_caps(codec, pin_nid) & AC_PINCAP_HBR) { in hdmi_pin_hbr_setup()
908 snd_hda_set_dev_select(codec, pin_nid, dev_id); in hdmi_pin_hbr_setup()
909 pinctl = snd_hda_codec_read(codec, pin_nid, 0, in hdmi_pin_hbr_setup()
923 pin_nid, in hdmi_pin_hbr_setup()
928 snd_hda_codec_write(codec, pin_nid, 0, in hdmi_pin_hbr_setup()
938 hda_nid_t pin_nid, int dev_id, in hdmi_setup_stream() argument
945 err = spec->ops.pin_hbr_setup(codec, pin_nid, dev_id, in hdmi_setup_stream()
1039 hda_nid_t pin_nid = per_pin->pin_nid; in intel_verify_pin_cvt_connect() local
1043 curr = snd_hda_codec_read(codec, pin_nid, 0, in intel_verify_pin_cvt_connect()
1046 snd_hda_codec_write_cache(codec, pin_nid, 0, in intel_verify_pin_cvt_connect()
1075 hda_nid_t pin_nid, in intel_not_share_assigned_cvt() argument
1098 if ((per_pin->pin_nid == pin_nid) && in intel_not_share_assigned_cvt()
1108 dev_num = snd_hda_get_num_devices(codec, per_pin->pin_nid) + 1; in intel_not_share_assigned_cvt()
1112 nid = per_pin->pin_nid; in intel_not_share_assigned_cvt()
1151 hda_nid_t pin_nid, int dev_id, hda_nid_t cvt_nid) in intel_not_share_assigned_cvt_nid() argument
1163 intel_not_share_assigned_cvt(codec, pin_nid, dev_id, mux_idx); in intel_not_share_assigned_cvt_nid()
1280 snd_hda_set_dev_select(codec, per_pin->pin_nid, per_pin->dev_id); in hdmi_pcm_open()
1281 snd_hda_codec_write_cache(codec, per_pin->pin_nid, 0, in hdmi_pcm_open()
1331 hda_nid_t pin_nid = per_pin->pin_nid; in hdmi_read_pin_conn() local
1335 if (!(get_wcaps(codec, pin_nid) & AC_WCAP_CONN_LIST)) { in hdmi_read_pin_conn()
1338 pin_nid, get_wcaps(codec, pin_nid)); in hdmi_read_pin_conn()
1342 snd_hda_set_dev_select(codec, pin_nid, dev_id); in hdmi_read_pin_conn()
1349 conns = snd_hda_get_raw_connections(codec, pin_nid, in hdmi_read_pin_conn()
1480 snd_hda_set_dev_select(codec, per_pin->pin_nid, in hdmi_pcm_setup_pin()
1482 snd_hda_codec_write_cache(codec, per_pin->pin_nid, 0, in hdmi_pcm_setup_pin()
1633 hda_nid_t pin_nid = per_pin->pin_nid; in hdmi_present_sense_via_verbs() local
1655 present = snd_hda_jack_pin_sense(codec, pin_nid, dev_id); in hdmi_present_sense_via_verbs()
1666 codec->addr, pin_nid, eld->monitor_present, eld->eld_valid); in hdmi_present_sense_via_verbs()
1669 if (spec->ops.pin_get_eld(codec, pin_nid, dev_id, in hdmi_present_sense_via_verbs()
1701 pin_idx = pin_id_to_pin_index(codec, per_pin->pin_nid, per_pin->dev_id); in silent_stream_enable()
1714 per_pin->pin_nid, per_cvt->cvt_nid); in silent_stream_enable()
1716 snd_hda_set_dev_select(codec, per_pin->pin_nid, per_pin->dev_id); in silent_stream_enable()
1717 snd_hda_codec_write_cache(codec, per_pin->pin_nid, 0, in silent_stream_enable()
1724 snd_hdac_sync_audio_rate(&codec->core, per_pin->pin_nid, in silent_stream_enable()
1754 per_pin->pin_nid, per_pin->cvt_nid); in silent_stream_disable()
1780 eld->eld_size = snd_hdac_acomp_get_eld(&codec->core, per_pin->pin_nid, in sync_eld_via_acomp()
1832 jack = snd_hda_jack_tbl_get_mst(codec, per_pin->pin_nid, in hdmi_repoll_eld()
1845 static int hdmi_add_pin(struct hda_codec *codec, hda_nid_t pin_nid) in hdmi_add_pin() argument
1854 caps = snd_hda_query_pin_caps(codec, pin_nid); in hdmi_add_pin()
1862 config = snd_hda_codec_get_pincfg(codec, pin_nid); in hdmi_add_pin()
1880 dev_num = snd_hda_get_num_devices(codec, pin_nid) + 1; in hdmi_add_pin()
1911 per_pin->pin_nid = pin_nid; in hdmi_add_pin()
1915 snd_hda_set_dev_select(codec, pin_nid, i); in hdmi_add_pin()
2101 snd_hdac_sync_audio_rate(&codec->core, per_pin->pin_nid, in generic_hdmi_playback_pcm_prepare()
2120 snd_hda_set_dev_select(codec, per_pin->pin_nid, in generic_hdmi_playback_pcm_prepare()
2122 pinctl = snd_hda_codec_read(codec, per_pin->pin_nid, 0, in generic_hdmi_playback_pcm_prepare()
2124 snd_hda_codec_write(codec, per_pin->pin_nid, 0, in generic_hdmi_playback_pcm_prepare()
2130 err = spec->ops.setup_stream(codec, cvt_nid, per_pin->pin_nid, in generic_hdmi_playback_pcm_prepare()
2187 snd_hda_set_dev_select(codec, per_pin->pin_nid, in hdmi_pcm_close()
2189 pinctl = snd_hda_codec_read(codec, per_pin->pin_nid, 0, in hdmi_pcm_close()
2191 snd_hda_codec_write(codec, per_pin->pin_nid, 0, in hdmi_pcm_close()
2336 !is_jack_detectable(codec, per_pin->pin_nid)) in generic_hdmi_build_jack()
2379 per_pin->pin_nid, in generic_hdmi_build_controls()
2443 hda_nid_t pin_nid = per_pin->pin_nid; in generic_hdmi_init() local
2446 snd_hda_set_dev_select(codec, pin_nid, dev_id); in generic_hdmi_init()
2447 hdmi_init_pin(codec, pin_nid); in generic_hdmi_init()
2450 snd_hda_jack_detect_enable_callback_mst(codec, pin_nid, dev_id, in generic_hdmi_init()
2644 get_pin(spec, i)->pin_nid, in generic_acomp_notifier_set()
2682 hda_nid_t pin_nid = spec->port2pin(codec, port); in generic_acomp_pin_eld_notify() local
2684 if (!pin_nid) in generic_acomp_pin_eld_notify()
2686 if (get_wcaps_type(get_wcaps(codec, pin_nid)) != AC_WID_PIN) in generic_acomp_pin_eld_notify()
2694 check_presence_and_report(codec, pin_nid, dev_id); in generic_acomp_pin_eld_notify()
2820 static int intel_pin2port(void *audio_ptr, int pin_nid) in intel_pin2port() argument
2828 if (WARN_ON(pin_nid < base_nid || pin_nid >= base_nid + 3)) in intel_pin2port()
2830 return pin_nid - base_nid + 1; in intel_pin2port()
2838 if (pin_nid == spec->port_map[i]) in intel_pin2port()
2842 codec_info(codec, "Can't find the HDMI/DP port for pin NID 0x%x\n", pin_nid); in intel_pin2port()
2865 int pin_nid; in intel_pin_eld_notify() local
2868 pin_nid = intel_port2pin(codec, port); in intel_pin_eld_notify()
2869 if (!pin_nid) in intel_pin_eld_notify()
2878 check_presence_and_report(codec, pin_nid, dev_id); in intel_pin_eld_notify()
2902 hda_nid_t pin_nid, int dev_id, u32 stream_tag, in i915_hsw_setup_stream() argument
2905 haswell_verify_D0(codec, cvt_nid, pin_nid); in i915_hsw_setup_stream()
2906 return hdmi_setup_stream(codec, cvt_nid, pin_nid, dev_id, in i915_hsw_setup_stream()
2916 haswell_verify_D0(codec, per_pin->cvt_nid, per_pin->pin_nid); in i915_pin_cvt_fixup()
2917 snd_hda_set_dev_select(codec, per_pin->pin_nid, in i915_pin_cvt_fixup()
2920 intel_not_share_assigned_cvt(codec, per_pin->pin_nid, in i915_pin_cvt_fixup()
3154 hda_nid_t pin = per_pin->pin_nid; in simple_playback_init()
3331 hda_nid_t cvt_nid, hda_nid_t pin_nid) in patch_simple_hdmi() argument
3357 per_pin->pin_nid = pin_nid; in patch_simple_hdmi()
3649 static int nvhdmi_pin2port(void *audio_ptr, int pin_nid) in nvhdmi_pin2port() argument
3651 return pin_nid - 4; in nvhdmi_pin2port()
3953 hda_nid_t pin_nid, int dev_id, int ca, in atihdmi_pin_setup_infoframe() argument
3957 snd_hda_codec_write(codec, pin_nid, 0, ATI_VERB_SET_CHANNEL_ALLOCATION, ca); in atihdmi_pin_setup_infoframe()
4026 hda_nid_t pin_nid, int hdmi_slot, int stream_channel) in atihdmi_pin_set_slot_channel() argument
4058 return snd_hda_codec_write(codec, pin_nid, 0, verb, ati_channel_setup); in atihdmi_pin_set_slot_channel()
4062 hda_nid_t pin_nid, int asp_slot) in atihdmi_pin_get_slot_channel() argument
4083 ati_channel_setup = snd_hda_codec_read(codec, pin_nid, 0, verb, 0); in atihdmi_pin_get_slot_channel()
4146 static int atihdmi_pin_hbr_setup(struct hda_codec *codec, hda_nid_t pin_nid, in atihdmi_pin_hbr_setup() argument
4153 hbr_ctl = snd_hda_codec_read(codec, pin_nid, 0, ATI_VERB_GET_HBR_CONTROL, 0); in atihdmi_pin_hbr_setup()
4162 pin_nid, in atihdmi_pin_hbr_setup()
4167 snd_hda_codec_write(codec, pin_nid, 0, in atihdmi_pin_hbr_setup()
4178 hda_nid_t pin_nid, int dev_id, in atihdmi_setup_stream() argument
4190 return hdmi_setup_stream(codec, cvt_nid, pin_nid, dev_id, in atihdmi_setup_stream()
4209 snd_hda_codec_write(codec, per_pin->pin_nid, 0, ATI_VERB_SET_DOWNMIX_INFO, 0); in atihdmi_init()
4213 snd_hda_codec_write(codec, per_pin->pin_nid, 0, in atihdmi_init()
4224 static int atihdmi_pin2port(void *audio_ptr, int pin_nid) in atihdmi_pin2port() argument
4226 return pin_nid / 2 - 1; in atihdmi_pin2port()