Lines Matching refs:dig_port
351 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_init_dp_buf_reg() local
357 if (dig_port->lane_reversal) in intel_ddi_init_dp_buf_reg()
359 if (dig_port->ddi_a_4_lanes) in intel_ddi_init_dp_buf_reg()
371 if (!intel_tc_port_in_tbt_alt_mode(dig_port)) in intel_ddi_init_dp_buf_reg()
891 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_get_encoder_pipes() local
904 intel_dp_mst_encoder_active_links(dig_port)) in intel_ddi_get_encoder_pipes()
955 intel_ddi_main_link_aux_domain(struct intel_digital_port *dig_port, in intel_ddi_main_link_aux_domain() argument
958 struct intel_display *display = to_intel_display(dig_port); in intel_ddi_main_link_aux_domain()
973 if (intel_psr_needs_aux_io_power(&dig_port->base, crtc_state)) in intel_ddi_main_link_aux_domain()
974 return intel_display_power_aux_io_domain(display, dig_port->aux_ch); in intel_ddi_main_link_aux_domain()
977 intel_encoder_is_tc(&dig_port->base))) in intel_ddi_main_link_aux_domain()
978 return intel_aux_power_domain(dig_port); in intel_ddi_main_link_aux_domain()
984 main_link_aux_power_domain_get(struct intel_digital_port *dig_port, in main_link_aux_power_domain_get() argument
987 struct intel_display *display = to_intel_display(dig_port); in main_link_aux_power_domain_get()
989 intel_ddi_main_link_aux_domain(dig_port, crtc_state); in main_link_aux_power_domain_get()
991 drm_WARN_ON(display->drm, dig_port->aux_wakeref); in main_link_aux_power_domain_get()
996 dig_port->aux_wakeref = intel_display_power_get(display, domain); in main_link_aux_power_domain_get()
1000 main_link_aux_power_domain_put(struct intel_digital_port *dig_port, in main_link_aux_power_domain_put() argument
1003 struct intel_display *display = to_intel_display(dig_port); in main_link_aux_power_domain_put()
1005 intel_ddi_main_link_aux_domain(dig_port, crtc_state); in main_link_aux_power_domain_put()
1008 wf = fetch_and_zero(&dig_port->aux_wakeref); in main_link_aux_power_domain_put()
1019 struct intel_digital_port *dig_port; in intel_ddi_get_power_domains() local
1030 dig_port = enc_to_dig_port(encoder); in intel_ddi_get_power_domains()
1032 if (!intel_tc_port_in_tbt_alt_mode(dig_port)) { in intel_ddi_get_power_domains()
1033 drm_WARN_ON(display->drm, dig_port->ddi_io_wakeref); in intel_ddi_get_power_domains()
1034 dig_port->ddi_io_wakeref = intel_display_power_get(display, in intel_ddi_get_power_domains()
1035 dig_port->ddi_io_power_domain); in intel_ddi_get_power_domains()
1038 main_link_aux_power_domain_get(dig_port, crtc_state); in intel_ddi_get_power_domains()
1098 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in skl_ddi_set_iboost() local
1126 if (encoder->port == PORT_A && dig_port->max_lanes == 4) in skl_ddi_set_iboost()
2156 icl_program_mg_dp_mode(struct intel_digital_port *dig_port, in icl_program_mg_dp_mode() argument
2160 enum tc_port tc_port = intel_encoder_to_tc(&dig_port->base); in icl_program_mg_dp_mode()
2167 if (!intel_encoder_is_tc(&dig_port->base) || in icl_program_mg_dp_mode()
2168 intel_tc_port_in_tbt_alt_mode(dig_port)) in icl_program_mg_dp_mode()
2183 pin_assignment = intel_tc_port_get_pin_assignment_mask(dig_port); in icl_program_mg_dp_mode()
2189 !intel_tc_port_in_legacy_mode(dig_port)); in icl_program_mg_dp_mode()
2462 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_power_up_lanes() local
2469 dig_port->lane_reversal); in intel_ddi_power_up_lanes()
2581 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in mtl_port_buf_ctl_program() local
2592 if (dig_port->lane_reversal) in mtl_port_buf_ctl_program()
2603 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in mtl_port_buf_ctl_io_selection() local
2606 val = intel_tc_port_in_tbt_alt_mode(dig_port) ? in mtl_port_buf_ctl_io_selection()
2738 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in tgl_ddi_pre_enable_dp() local
2780 if (!intel_tc_port_in_tbt_alt_mode(dig_port)) { in tgl_ddi_pre_enable_dp()
2781 drm_WARN_ON(&dev_priv->drm, dig_port->ddi_io_wakeref); in tgl_ddi_pre_enable_dp()
2782 dig_port->ddi_io_wakeref = intel_display_power_get(display, in tgl_ddi_pre_enable_dp()
2783 dig_port->ddi_io_power_domain); in tgl_ddi_pre_enable_dp()
2787 icl_program_mg_dp_mode(dig_port, crtc_state); in tgl_ddi_pre_enable_dp()
2887 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in hsw_ddi_pre_enable_dp() local
2910 if (!intel_tc_port_in_tbt_alt_mode(dig_port)) { in hsw_ddi_pre_enable_dp()
2911 drm_WARN_ON(&dev_priv->drm, dig_port->ddi_io_wakeref); in hsw_ddi_pre_enable_dp()
2912 dig_port->ddi_io_wakeref = intel_display_power_get(display, in hsw_ddi_pre_enable_dp()
2913 dig_port->ddi_io_power_domain); in hsw_ddi_pre_enable_dp()
2916 icl_program_mg_dp_mode(dig_port, crtc_state); in hsw_ddi_pre_enable_dp()
2980 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_pre_enable_hdmi() local
2981 struct intel_hdmi *intel_hdmi = &dig_port->hdmi; in intel_ddi_pre_enable_hdmi()
2987 drm_WARN_ON(&dev_priv->drm, dig_port->ddi_io_wakeref); in intel_ddi_pre_enable_hdmi()
2988 dig_port->ddi_io_wakeref = intel_display_power_get(display, in intel_ddi_pre_enable_hdmi()
2989 dig_port->ddi_io_power_domain); in intel_ddi_pre_enable_hdmi()
2991 icl_program_mg_dp_mode(dig_port, crtc_state); in intel_ddi_pre_enable_hdmi()
2995 dig_port->set_infoframes(encoder, in intel_ddi_pre_enable_hdmi()
3036 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_pre_enable() local
3043 if (intel_lspcon_active(dig_port) && intel_dp_has_hdmi_sink(&dig_port->dp)) in intel_ddi_pre_enable()
3044 dig_port->set_infoframes(encoder, in intel_ddi_pre_enable()
3122 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_post_disable_dp() local
3123 struct intel_dp *intel_dp = &dig_port->dp; in intel_ddi_post_disable_dp()
3169 wakeref = fetch_and_zero(&dig_port->ddi_io_wakeref); in intel_ddi_post_disable_dp()
3173 dig_port->ddi_io_power_domain, in intel_ddi_post_disable_dp()
3191 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_post_disable_hdmi() local
3192 struct intel_hdmi *intel_hdmi = &dig_port->hdmi; in intel_ddi_post_disable_hdmi()
3195 dig_port->set_infoframes(encoder, false, in intel_ddi_post_disable_hdmi()
3206 wakeref = fetch_and_zero(&dig_port->ddi_io_wakeref); in intel_ddi_post_disable_hdmi()
3209 dig_port->ddi_io_power_domain, in intel_ddi_post_disable_hdmi()
3312 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_post_pll_disable() local
3314 main_link_aux_power_domain_put(dig_port, old_crtc_state); in intel_ddi_post_pll_disable()
3317 intel_tc_port_put_link(dig_port); in intel_ddi_post_pll_disable()
3364 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_enable_dp() local
3373 if (!intel_lspcon_active(dig_port) || intel_dp_has_hdmi_sink(&dig_port->dp)) in intel_ddi_enable_dp()
3405 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_enable_hdmi() local
3473 if (dig_port->lane_reversal) in intel_ddi_enable_hdmi()
3475 if (dig_port->ddi_a_4_lanes) in intel_ddi_enable_hdmi()
3483 if (dig_port->lane_reversal) in intel_ddi_enable_hdmi()
3494 drm_WARN_ON(&dev_priv->drm, !intel_tc_port_in_legacy_mode(dig_port)); in intel_ddi_enable_hdmi()
3682 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_pre_pll_enable() local
3688 intel_tc_port_get_link(dig_port, crtc_state->lane_count); in intel_ddi_pre_pll_enable()
3692 main_link_aux_power_domain_get(dig_port, crtc_state); in intel_ddi_pre_pll_enable()
3694 if (is_tc_port && !intel_tc_port_in_tbt_alt_mode(dig_port)) in intel_ddi_pre_pll_enable()
3699 intel_tc_port_set_fia_lane_count(dig_port, crtc_state->lane_count); in intel_ddi_pre_pll_enable()
3720 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); in mtl_ddi_prepare_link_retrain() local
3721 struct intel_encoder *encoder = &dig_port->base; in mtl_ddi_prepare_link_retrain()
3766 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); in intel_ddi_prepare_link_retrain() local
3767 struct intel_encoder *encoder = &dig_port->base; in intel_ddi_prepare_link_retrain()
3788 (intel_tc_port_in_dp_alt_mode(dig_port) || intel_tc_port_in_legacy_mode(dig_port))) in intel_ddi_prepare_link_retrain()
4022 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_read_func_ctl_dp_sst() local
4049 if (intel_lspcon_active(dig_port) && intel_dp_has_hdmi_sink(&dig_port->dp)) in intel_ddi_read_func_ctl_dp_sst()
4134 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_read_func_ctl() local
4140 if (intel_dp_mst_encoder_active_links(dig_port)) in intel_ddi_read_func_ctl()
4578 struct intel_digital_port *dig_port = enc_to_dig_port(to_intel_encoder(encoder)); in intel_ddi_encoder_destroy() local
4581 if (intel_encoder_is_tc(&dig_port->base)) in intel_ddi_encoder_destroy()
4582 intel_tc_port_cleanup(dig_port); in intel_ddi_encoder_destroy()
4586 kfree(dig_port->hdcp.port_data.streams); in intel_ddi_encoder_destroy()
4587 kfree(dig_port); in intel_ddi_encoder_destroy()
4593 struct intel_digital_port *dig_port = enc_to_dig_port(to_intel_encoder(encoder)); in intel_ddi_encoder_reset() local
4600 if (intel_encoder_is_tc(&dig_port->base)) in intel_ddi_encoder_reset()
4601 intel_tc_port_init_mode(dig_port); in intel_ddi_encoder_reset()
4619 static int intel_ddi_init_dp_connector(struct intel_digital_port *dig_port) in intel_ddi_init_dp_connector() argument
4621 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); in intel_ddi_init_dp_connector()
4623 enum port port = dig_port->base.port; in intel_ddi_init_dp_connector()
4629 dig_port->dp.output_reg = DDI_BUF_CTL(port); in intel_ddi_init_dp_connector()
4631 dig_port->dp.prepare_link_retrain = mtl_ddi_prepare_link_retrain; in intel_ddi_init_dp_connector()
4633 dig_port->dp.prepare_link_retrain = intel_ddi_prepare_link_retrain; in intel_ddi_init_dp_connector()
4634 dig_port->dp.set_link_train = intel_ddi_set_link_train; in intel_ddi_init_dp_connector()
4635 dig_port->dp.set_idle_link_train = intel_ddi_set_idle_link_train; in intel_ddi_init_dp_connector()
4637 dig_port->dp.voltage_max = intel_ddi_dp_voltage_max; in intel_ddi_init_dp_connector()
4638 dig_port->dp.preemph_max = intel_ddi_dp_preemph_max; in intel_ddi_init_dp_connector()
4640 if (!intel_dp_init_connector(dig_port, connector)) { in intel_ddi_init_dp_connector()
4645 if (dig_port->base.type == INTEL_OUTPUT_EDP) { in intel_ddi_init_dp_connector()
4646 struct drm_device *dev = dig_port->base.base.dev; in intel_ddi_init_dp_connector()
4737 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_link_check() local
4740 drm_WARN_ON(&i915->drm, !dig_port->dp.attached_connector); in intel_ddi_link_check()
4749 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_hotplug() local
4750 struct intel_dp *intel_dp = &dig_port->dp; in intel_ddi_hotplug()
4761 if (!intel_tc_port_link_reset(dig_port)) { in intel_ddi_hotplug()
4795 !dig_port->dp.is_mst) in intel_ddi_hotplug()
4825 static int intel_ddi_init_hdmi_connector(struct intel_digital_port *dig_port) in intel_ddi_init_hdmi_connector() argument
4828 enum port port = dig_port->base.port; in intel_ddi_init_hdmi_connector()
4834 dig_port->hdmi.hdmi_reg = DDI_BUF_CTL(port); in intel_ddi_init_hdmi_connector()
4836 if (!intel_hdmi_init_connector(dig_port, connector)) { in intel_ddi_init_hdmi_connector()
4842 dig_port->hdmi.hdmi_reg = INVALID_MMIO_REG; in intel_ddi_init_hdmi_connector()
4849 static bool intel_ddi_a_force_4_lanes(struct intel_digital_port *dig_port) in intel_ddi_a_force_4_lanes() argument
4851 struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev); in intel_ddi_a_force_4_lanes()
4853 if (dig_port->base.port != PORT_A) in intel_ddi_a_force_4_lanes()
4856 if (dig_port->ddi_a_4_lanes) in intel_ddi_a_force_4_lanes()
4869 intel_ddi_max_lanes(struct intel_digital_port *dig_port) in intel_ddi_max_lanes() argument
4871 struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev); in intel_ddi_max_lanes()
4872 enum port port = dig_port->base.port; in intel_ddi_max_lanes()
4891 if (intel_ddi_a_force_4_lanes(dig_port)) { in intel_ddi_max_lanes()
4894 dig_port->ddi_a_4_lanes = true; in intel_ddi_max_lanes()
4989 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); in intel_ddi_tc_encoder_suspend_complete() local
4996 intel_tc_port_suspend(dig_port); in intel_ddi_tc_encoder_suspend_complete()
5010 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); in intel_ddi_tc_encoder_shutdown_complete() local
5012 intel_tc_port_cleanup(dig_port); in intel_ddi_tc_encoder_shutdown_complete()
5070 struct intel_digital_port *dig_port; in intel_ddi_init() local
5149 dig_port = kzalloc(sizeof(*dig_port), GFP_KERNEL); in intel_ddi_init()
5150 if (!dig_port) in intel_ddi_init()
5153 dig_port->aux_ch = AUX_CH_NONE; in intel_ddi_init()
5155 encoder = &dig_port->base; in intel_ddi_init()
5192 mutex_init(&dig_port->hdcp.mutex); in intel_ddi_init()
5193 dig_port->hdcp.num_streams = 0; in intel_ddi_init()
5327 dig_port->lane_reversal = intel_bios_encoder_lane_reversal(devdata) || in intel_ddi_init()
5330 dig_port->ddi_a_4_lanes = DISPLAY_VER(dev_priv) < 11 && ddi_buf_ctl & DDI_A_4_LANES; in intel_ddi_init()
5332 dig_port->dp.output_reg = INVALID_MMIO_REG; in intel_ddi_init()
5333 dig_port->max_lanes = intel_ddi_max_lanes(dig_port); in intel_ddi_init()
5336 dig_port->aux_ch = intel_dp_aux_ch(encoder); in intel_ddi_init()
5337 if (dig_port->aux_ch == AUX_CH_NONE) in intel_ddi_init()
5359 dig_port->lock = intel_tc_port_lock; in intel_ddi_init()
5360 dig_port->unlock = intel_tc_port_unlock; in intel_ddi_init()
5362 if (intel_tc_port_init(dig_port, is_legacy) < 0) in intel_ddi_init()
5367 dig_port->ddi_io_power_domain = intel_display_power_ddi_io_domain(display, port); in intel_ddi_init()
5371 dig_port->connected = intel_tc_port_connected; in intel_ddi_init()
5373 dig_port->connected = lpt_digital_port_connected; in intel_ddi_init()
5375 dig_port->connected = bdw_digital_port_connected; in intel_ddi_init()
5377 dig_port->connected = lpt_digital_port_connected; in intel_ddi_init()
5380 dig_port->connected = bdw_digital_port_connected; in intel_ddi_init()
5382 dig_port->connected = lpt_digital_port_connected; in intel_ddi_init()
5385 dig_port->connected = hsw_digital_port_connected; in intel_ddi_init()
5387 dig_port->connected = lpt_digital_port_connected; in intel_ddi_init()
5390 intel_infoframe_init(dig_port); in intel_ddi_init()
5393 if (intel_ddi_init_dp_connector(dig_port)) in intel_ddi_init()
5396 dig_port->hpd_pulse = intel_dp_hpd_pulse; in intel_ddi_init()
5398 if (dig_port->dp.mso_link_count) in intel_ddi_init()
5407 if (intel_ddi_init_hdmi_connector(dig_port)) in intel_ddi_init()
5415 kfree(dig_port); in intel_ddi_init()