Lines Matching defs:pin_nid
69 hda_nid_t pin_nid;
99 int (*pin_get_eld)(struct hda_codec *codec, hda_nid_t pin_nid,
102 void (*pin_setup_infoframe)(struct hda_codec *codec, hda_nid_t pin_nid,
107 int (*pin_hbr_setup)(struct hda_codec *codec, hda_nid_t pin_nid,
111 hda_nid_t pin_nid, int dev_id, u32 stream_tag,
252 hda_nid_t pin_nid, int dev_id)
267 if ((per_pin->pin_nid == pin_nid) &&
272 codec_warn(codec, "HDMI: pin NID 0x%x not registered\n", pin_nid);
436 static void hdmi_get_dip_index(struct hda_codec *codec, hda_nid_t pin_nid,
441 val = snd_hda_codec_read(codec, pin_nid, 0,
449 static void hdmi_set_dip_index(struct hda_codec *codec, hda_nid_t pin_nid,
456 snd_hda_codec_write(codec, pin_nid, 0, AC_VERB_SET_HDMI_DIP_INDEX, val);
459 static void hdmi_write_dip_byte(struct hda_codec *codec, hda_nid_t pin_nid,
462 snd_hda_codec_write(codec, pin_nid, 0, AC_VERB_SET_HDMI_DIP_DATA, val);
465 static void hdmi_init_pin(struct hda_codec *codec, hda_nid_t pin_nid)
471 if (get_wcaps(codec, pin_nid) & AC_WCAP_OUT_AMP)
472 snd_hda_codec_write(codec, pin_nid, 0,
484 snd_hda_codec_write(codec, pin_nid, 0,
499 snd_hdmi_print_eld_info(&per_pin->sink_eld, buffer, per_pin->pin_nid,
560 hda_nid_t pin_nid)
562 hdmi_set_dip_index(codec, pin_nid, 0x0, 0x0);
563 snd_hda_codec_write(codec, pin_nid, 0, AC_VERB_SET_HDMI_DIP_XMIT,
571 hda_nid_t pin_nid)
573 hdmi_set_dip_index(codec, pin_nid, 0x0, 0x0);
574 snd_hda_codec_write(codec, pin_nid, 0, AC_VERB_SET_HDMI_DIP_XMIT,
578 static void hdmi_debug_dip_size(struct hda_codec *codec, hda_nid_t pin_nid)
584 size = snd_hdmi_get_eld_size(codec, pin_nid);
588 size = snd_hda_codec_read(codec, pin_nid, 0,
595 static void hdmi_clear_dip_buffers(struct hda_codec *codec, hda_nid_t pin_nid)
602 size = snd_hda_codec_read(codec, pin_nid, 0,
607 hdmi_set_dip_index(codec, pin_nid, i, 0x0);
609 hdmi_write_dip_byte(codec, pin_nid, 0x0);
610 hdmi_get_dip_index(codec, pin_nid, &pi, &bi);
639 hda_nid_t pin_nid,
644 hdmi_debug_dip_size(codec, pin_nid);
645 hdmi_clear_dip_buffers(codec, pin_nid); /* be paranoid */
647 hdmi_set_dip_index(codec, pin_nid, 0x0, 0x0);
649 hdmi_write_dip_byte(codec, pin_nid, dip[i]);
652 static bool hdmi_infoframe_uptodate(struct hda_codec *codec, hda_nid_t pin_nid,
658 hdmi_set_dip_index(codec, pin_nid, 0x0, 0x0);
659 if (snd_hda_codec_read(codec, pin_nid, 0, AC_VERB_GET_HDMI_DIP_XMIT, 0)
664 val = snd_hda_codec_read(codec, pin_nid, 0,
682 hda_nid_t pin_nid, int dev_id,
716 codec_dbg(codec, "HDMI: unknown connection type at pin NID 0x%x\n", pin_nid);
720 snd_hda_set_dev_select(codec, pin_nid, dev_id);
727 if (!hdmi_infoframe_uptodate(codec, pin_nid, ai.bytes,
730 __func__, pin_nid, active_channels, ca);
731 hdmi_stop_infoframe_trans(codec, pin_nid);
732 hdmi_fill_audio_infoframe(codec, pin_nid,
734 hdmi_start_infoframe_trans(codec, pin_nid);
744 hda_nid_t pin_nid = per_pin->pin_nid;
754 snd_hda_set_dev_select(codec, pin_nid, dev_id);
757 if (get_wcaps(codec, pin_nid) & AC_WCAP_OUT_AMP)
758 snd_hda_codec_write(codec, pin_nid, 0,
778 pin_nid, non_pcm, ca, channels,
781 spec->ops.pin_setup_infoframe(codec, pin_nid, dev_id,
912 static int hdmi_pin_hbr_setup(struct hda_codec *codec, hda_nid_t pin_nid,
917 if (snd_hda_query_pin_caps(codec, pin_nid) & AC_PINCAP_HBR) {
918 snd_hda_set_dev_select(codec, pin_nid, dev_id);
919 pinctl = snd_hda_codec_read(codec, pin_nid, 0,
933 pin_nid,
938 snd_hda_codec_write(codec, pin_nid, 0,
948 hda_nid_t pin_nid, int dev_id,
955 err = spec->ops.pin_hbr_setup(codec, pin_nid, dev_id,
1053 hda_nid_t pin_nid = per_pin->pin_nid;
1057 curr = snd_hda_codec_read(codec, pin_nid, 0,
1060 snd_hda_codec_write_cache(codec, pin_nid, 0,
1089 hda_nid_t pin_nid,
1112 if ((per_pin->pin_nid == pin_nid) &&
1122 dev_num = snd_hda_get_num_devices(codec, per_pin->pin_nid) + 1;
1126 nid = per_pin->pin_nid;
1165 hda_nid_t pin_nid, int dev_id, hda_nid_t cvt_nid)
1177 intel_not_share_assigned_cvt(codec, pin_nid, dev_id, mux_idx);
1284 snd_hda_set_dev_select(codec, per_pin->pin_nid, per_pin->dev_id);
1285 snd_hda_codec_write_cache(codec, per_pin->pin_nid, 0,
1335 hda_nid_t pin_nid = per_pin->pin_nid;
1339 if (!(get_wcaps(codec, pin_nid) & AC_WCAP_CONN_LIST)) {
1342 pin_nid, get_wcaps(codec, pin_nid));
1346 snd_hda_set_dev_select(codec, pin_nid, dev_id);
1353 conns = snd_hda_get_raw_connections(codec, pin_nid,
1455 snd_hda_set_dev_select(codec, per_pin->pin_nid,
1457 snd_hda_codec_write_cache(codec, per_pin->pin_nid, 0,
1609 hda_nid_t pin_nid = per_pin->pin_nid;
1631 present = snd_hda_jack_pin_sense(codec, pin_nid, dev_id);
1642 codec->addr, pin_nid, eld->monitor_present, eld->eld_valid);
1645 if (spec->ops.pin_get_eld(codec, pin_nid, dev_id,
1667 snd_hdac_sync_audio_rate(&codec->core, per_pin->pin_nid,
1730 pin_idx = pin_id_to_pin_index(codec, per_pin->pin_nid, per_pin->dev_id);
1743 per_pin->pin_nid, per_cvt->cvt_nid);
1745 snd_hda_set_dev_select(codec, per_pin->pin_nid, per_pin->dev_id);
1746 snd_hda_codec_write_cache(codec, per_pin->pin_nid, 0,
1794 per_pin->pin_nid, per_pin->cvt_nid);
1829 eld->eld_size = snd_hdac_acomp_get_eld(&codec->core, per_pin->pin_nid,
1863 jack = snd_hda_jack_tbl_get_mst(codec, per_pin->pin_nid,
1876 static int hdmi_add_pin(struct hda_codec *codec, hda_nid_t pin_nid)
1885 caps = snd_hda_query_pin_caps(codec, pin_nid);
1893 config = snd_hda_codec_get_pincfg(codec, pin_nid);
1911 dev_num = snd_hda_get_num_devices(codec, pin_nid) + 1;
1938 per_pin->pin_nid = pin_nid;
1942 snd_hda_set_dev_select(codec, pin_nid, i);
1946 if (!is_jack_detectable(codec, pin_nid))
1947 codec_warn(codec, "HDMI: pin NID 0x%x - jack not detectable\n", pin_nid);
2125 snd_hdac_sync_audio_rate(&codec->core, per_pin->pin_nid,
2144 snd_hda_set_dev_select(codec, per_pin->pin_nid,
2146 pinctl = snd_hda_codec_read(codec, per_pin->pin_nid, 0,
2148 snd_hda_codec_write(codec, per_pin->pin_nid, 0,
2154 err = spec->ops.setup_stream(codec, cvt_nid, per_pin->pin_nid,
2211 snd_hda_set_dev_select(codec, per_pin->pin_nid,
2213 pinctl = snd_hda_codec_read(codec, per_pin->pin_nid, 0,
2215 snd_hda_codec_write(codec, per_pin->pin_nid, 0,
2451 hda_nid_t pin_nid = per_pin->pin_nid;
2454 snd_hda_set_dev_select(codec, pin_nid, dev_id);
2455 hdmi_init_pin(codec, pin_nid);
2458 snd_hda_jack_detect_enable_callback_mst(codec, pin_nid, dev_id,
2648 get_pin(spec, i)->pin_nid,
2686 hda_nid_t pin_nid = spec->port2pin(codec, port);
2688 if (!pin_nid)
2690 if (get_wcaps_type(get_wcaps(codec, pin_nid)) != AC_WID_PIN)
2698 check_presence_and_report(codec, pin_nid, dev_id);
2824 static int intel_pin2port(void *audio_ptr, int pin_nid)
2832 if (WARN_ON(pin_nid < base_nid || pin_nid >= base_nid + 3))
2834 return pin_nid - base_nid + 1;
2842 if (pin_nid == spec->port_map[i])
2846 codec_info(codec, "Can't find the HDMI/DP port for pin NID 0x%x\n", pin_nid);
2869 int pin_nid;
2872 pin_nid = intel_port2pin(codec, port);
2873 if (!pin_nid)
2882 check_presence_and_report(codec, pin_nid, dev_id);
2906 hda_nid_t pin_nid, int dev_id, u32 stream_tag,
2910 int pin_idx = pin_id_to_pin_index(codec, pin_nid, dev_id);
2919 haswell_verify_D0(codec, cvt_nid, pin_nid);
2927 res = hdmi_setup_stream(codec, cvt_nid, pin_nid, dev_id,
2944 haswell_verify_D0(codec, per_pin->cvt_nid, per_pin->pin_nid);
2945 snd_hda_set_dev_select(codec, per_pin->pin_nid,
2948 intel_not_share_assigned_cvt(codec, per_pin->pin_nid,
3277 hda_nid_t pin = per_pin->pin_nid;
3454 hda_nid_t cvt_nid, hda_nid_t pin_nid)
3480 per_pin->pin_nid = pin_nid;
3772 static int nvhdmi_pin2port(void *audio_ptr, int pin_nid)
3774 return pin_nid - 4;
4144 hda_nid_t pin_nid, int dev_id, int ca,
4148 snd_hda_codec_write(codec, pin_nid, 0, ATI_VERB_SET_CHANNEL_ALLOCATION, ca);
4217 hda_nid_t pin_nid, int hdmi_slot, int stream_channel)
4249 return snd_hda_codec_write(codec, pin_nid, 0, verb, ati_channel_setup);
4253 hda_nid_t pin_nid, int asp_slot)
4274 ati_channel_setup = snd_hda_codec_read(codec, pin_nid, 0, verb, 0);
4337 static int atihdmi_pin_hbr_setup(struct hda_codec *codec, hda_nid_t pin_nid,
4344 hbr_ctl = snd_hda_codec_read(codec, pin_nid, 0, ATI_VERB_GET_HBR_CONTROL, 0);
4353 pin_nid,
4358 snd_hda_codec_write(codec, pin_nid, 0,
4369 hda_nid_t pin_nid, int dev_id,
4381 return hdmi_setup_stream(codec, cvt_nid, pin_nid, dev_id,
4400 snd_hda_codec_write(codec, per_pin->pin_nid, 0, ATI_VERB_SET_DOWNMIX_INFO, 0);
4404 snd_hda_codec_write(codec, per_pin->pin_nid, 0,
4415 static int atihdmi_pin2port(void *audio_ptr, int pin_nid)
4417 return pin_nid / 2 - 1;