Lines Matching refs:dig_port
281 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_init_dp_buf_reg() local
284 intel_dp->DP = dig_port->saved_port_bits | in intel_ddi_init_dp_buf_reg()
290 if (dig_port->tc_mode != TC_PORT_TBT_ALT) in intel_ddi_init_dp_buf_reg()
828 intel_ddi_main_link_aux_domain(struct intel_digital_port *dig_port) in intel_ddi_main_link_aux_domain() argument
842 return dig_port->aux_ch == AUX_CH_A ? POWER_DOMAIN_AUX_IO_A : in intel_ddi_main_link_aux_domain()
843 intel_aux_power_domain(dig_port); in intel_ddi_main_link_aux_domain()
850 struct intel_digital_port *dig_port; in intel_ddi_get_power_domains() local
862 dig_port = enc_to_dig_port(encoder); in intel_ddi_get_power_domains()
865 dig_port->tc_mode != TC_PORT_TBT_ALT) { in intel_ddi_get_power_domains()
866 drm_WARN_ON(&dev_priv->drm, dig_port->ddi_io_wakeref); in intel_ddi_get_power_domains()
867 dig_port->ddi_io_wakeref = intel_display_power_get(dev_priv, in intel_ddi_get_power_domains()
868 dig_port->ddi_io_power_domain); in intel_ddi_get_power_domains()
877 drm_WARN_ON(&dev_priv->drm, dig_port->aux_wakeref); in intel_ddi_get_power_domains()
878 dig_port->aux_wakeref = in intel_ddi_get_power_domains()
880 intel_ddi_main_link_aux_domain(dig_port)); in intel_ddi_get_power_domains()
940 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in skl_ddi_set_iboost() local
970 if (encoder->port == PORT_A && dig_port->max_lanes == 4) in skl_ddi_set_iboost()
2052 icl_program_mg_dp_mode(struct intel_digital_port *dig_port, in icl_program_mg_dp_mode() argument
2055 struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev); in icl_program_mg_dp_mode()
2056 enum tc_port tc_port = intel_port_to_tc(dev_priv, dig_port->base.port); in icl_program_mg_dp_mode()
2057 enum phy phy = intel_port_to_phy(dev_priv, dig_port->base.port); in icl_program_mg_dp_mode()
2062 dig_port->tc_mode == TC_PORT_TBT_ALT) in icl_program_mg_dp_mode()
2081 pin_assignment = intel_tc_port_get_pin_assignment_mask(dig_port); in icl_program_mg_dp_mode()
2087 dig_port->tc_mode != TC_PORT_LEGACY); in icl_program_mg_dp_mode()
2241 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_power_up_lanes() local
2246 dig_port->saved_port_bits & DDI_BUF_PORT_REVERSAL; in intel_ddi_power_up_lanes()
2333 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in dg2_ddi_pre_enable_dp() local
2357 dig_port->tc_mode != TC_PORT_TBT_ALT) in dg2_ddi_pre_enable_dp()
2358 dig_port->ddi_io_wakeref = intel_display_power_get(dev_priv, in dg2_ddi_pre_enable_dp()
2359 dig_port->ddi_io_power_domain); in dg2_ddi_pre_enable_dp()
2443 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in tgl_ddi_pre_enable_dp() local
2480 dig_port->tc_mode != TC_PORT_TBT_ALT) { in tgl_ddi_pre_enable_dp()
2481 drm_WARN_ON(&dev_priv->drm, dig_port->ddi_io_wakeref); in tgl_ddi_pre_enable_dp()
2482 dig_port->ddi_io_wakeref = intel_display_power_get(dev_priv, in tgl_ddi_pre_enable_dp()
2483 dig_port->ddi_io_power_domain); in tgl_ddi_pre_enable_dp()
2487 icl_program_mg_dp_mode(dig_port, crtc_state); in tgl_ddi_pre_enable_dp()
2586 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in hsw_ddi_pre_enable_dp() local
2605 dig_port->tc_mode != TC_PORT_TBT_ALT) { in hsw_ddi_pre_enable_dp()
2606 drm_WARN_ON(&dev_priv->drm, dig_port->ddi_io_wakeref); in hsw_ddi_pre_enable_dp()
2607 dig_port->ddi_io_wakeref = intel_display_power_get(dev_priv, in hsw_ddi_pre_enable_dp()
2608 dig_port->ddi_io_power_domain); in hsw_ddi_pre_enable_dp()
2611 icl_program_mg_dp_mode(dig_port, crtc_state); in hsw_ddi_pre_enable_dp()
2672 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_pre_enable_hdmi() local
2673 struct intel_hdmi *intel_hdmi = &dig_port->hdmi; in intel_ddi_pre_enable_hdmi()
2679 drm_WARN_ON(&dev_priv->drm, dig_port->ddi_io_wakeref); in intel_ddi_pre_enable_hdmi()
2680 dig_port->ddi_io_wakeref = intel_display_power_get(dev_priv, in intel_ddi_pre_enable_hdmi()
2681 dig_port->ddi_io_power_domain); in intel_ddi_pre_enable_hdmi()
2683 icl_program_mg_dp_mode(dig_port, crtc_state); in intel_ddi_pre_enable_hdmi()
2687 dig_port->set_infoframes(encoder, in intel_ddi_pre_enable_hdmi()
2722 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_pre_enable() local
2729 if (dig_port->lspcon.active && dig_port->dp.has_hdmi_sink) in intel_ddi_pre_enable()
2730 dig_port->set_infoframes(encoder, in intel_ddi_pre_enable()
2771 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_post_disable_dp() local
2772 struct intel_dp *intel_dp = &dig_port->dp; in intel_ddi_post_disable_dp()
2819 dig_port->tc_mode != TC_PORT_TBT_ALT) in intel_ddi_post_disable_dp()
2821 dig_port->ddi_io_power_domain, in intel_ddi_post_disable_dp()
2822 fetch_and_zero(&dig_port->ddi_io_wakeref)); in intel_ddi_post_disable_dp()
2833 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_post_disable_hdmi() local
2834 struct intel_hdmi *intel_hdmi = &dig_port->hdmi; in intel_ddi_post_disable_hdmi()
2836 dig_port->set_infoframes(encoder, false, in intel_ddi_post_disable_hdmi()
2844 dig_port->ddi_io_power_domain, in intel_ddi_post_disable_hdmi()
2845 fetch_and_zero(&dig_port->ddi_io_wakeref)); in intel_ddi_post_disable_hdmi()
2858 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_post_disable() local
2915 intel_ddi_main_link_aux_domain(dig_port), in intel_ddi_post_disable()
2916 fetch_and_zero(&dig_port->aux_wakeref)); in intel_ddi_post_disable()
2919 intel_tc_port_put_link(dig_port); in intel_ddi_post_disable()
3001 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_enable_ddi_dp() local
3010 if (!dig_port->lspcon.active || dig_port->dp.has_hdmi_sink) in intel_enable_ddi_dp()
3047 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_enable_ddi_hdmi() local
3118 dig_port->saved_port_bits | DDI_BUF_CTL_ENABLE); in intel_enable_ddi_hdmi()
3282 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_pre_pll_enable() local
3287 intel_tc_port_get_link(dig_port, crtc_state->lane_count); in intel_ddi_pre_pll_enable()
3290 drm_WARN_ON(&dev_priv->drm, dig_port->aux_wakeref); in intel_ddi_pre_pll_enable()
3291 dig_port->aux_wakeref = in intel_ddi_pre_pll_enable()
3293 intel_ddi_main_link_aux_domain(dig_port)); in intel_ddi_pre_pll_enable()
3296 if (is_tc_port && dig_port->tc_mode != TC_PORT_TBT_ALT) in intel_ddi_pre_pll_enable()
3301 intel_tc_port_set_fia_lane_count(dig_port, crtc_state->lane_count); in intel_ddi_pre_pll_enable()
3505 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_read_func_ctl() local
3580 if (dig_port->lspcon.active && dig_port->dp.has_hdmi_sink) in intel_ddi_read_func_ctl()
3997 struct intel_digital_port *dig_port = enc_to_dig_port(to_intel_encoder(encoder)); in intel_ddi_encoder_destroy() local
4003 if (dig_port) in intel_ddi_encoder_destroy()
4004 kfree(dig_port->hdcp_port_data.streams); in intel_ddi_encoder_destroy()
4005 kfree(dig_port); in intel_ddi_encoder_destroy()
4023 intel_ddi_init_dp_connector(struct intel_digital_port *dig_port) in intel_ddi_init_dp_connector() argument
4025 struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev); in intel_ddi_init_dp_connector()
4027 enum port port = dig_port->base.port; in intel_ddi_init_dp_connector()
4033 dig_port->dp.output_reg = DDI_BUF_CTL(port); in intel_ddi_init_dp_connector()
4034 dig_port->dp.prepare_link_retrain = intel_ddi_prepare_link_retrain; in intel_ddi_init_dp_connector()
4035 dig_port->dp.set_link_train = intel_ddi_set_link_train; in intel_ddi_init_dp_connector()
4036 dig_port->dp.set_idle_link_train = intel_ddi_set_idle_link_train; in intel_ddi_init_dp_connector()
4039 dig_port->dp.set_signal_levels = dg2_set_signal_levels; in intel_ddi_init_dp_connector()
4041 dig_port->dp.set_signal_levels = tgl_set_signal_levels; in intel_ddi_init_dp_connector()
4043 dig_port->dp.set_signal_levels = icl_set_signal_levels; in intel_ddi_init_dp_connector()
4045 dig_port->dp.set_signal_levels = bxt_set_signal_levels; in intel_ddi_init_dp_connector()
4047 dig_port->dp.set_signal_levels = hsw_set_signal_levels; in intel_ddi_init_dp_connector()
4049 dig_port->dp.voltage_max = intel_ddi_dp_voltage_max; in intel_ddi_init_dp_connector()
4050 dig_port->dp.preemph_max = intel_ddi_dp_preemph_max; in intel_ddi_init_dp_connector()
4052 if (!intel_dp_init_connector(dig_port, connector)) { in intel_ddi_init_dp_connector()
4166 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_hotplug() local
4167 struct intel_dp *intel_dp = &dig_port->dp; in intel_ddi_hotplug()
4228 !dig_port->dp.is_mst) in intel_ddi_hotplug()
4259 intel_ddi_init_hdmi_connector(struct intel_digital_port *dig_port) in intel_ddi_init_hdmi_connector() argument
4262 enum port port = dig_port->base.port; in intel_ddi_init_hdmi_connector()
4268 dig_port->hdmi.hdmi_reg = DDI_BUF_CTL(port); in intel_ddi_init_hdmi_connector()
4269 intel_hdmi_init_connector(dig_port, connector); in intel_ddi_init_hdmi_connector()
4274 static bool intel_ddi_a_force_4_lanes(struct intel_digital_port *dig_port) in intel_ddi_a_force_4_lanes() argument
4276 struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev); in intel_ddi_a_force_4_lanes()
4278 if (dig_port->base.port != PORT_A) in intel_ddi_a_force_4_lanes()
4281 if (dig_port->saved_port_bits & DDI_A_4_LANES) in intel_ddi_a_force_4_lanes()
4294 intel_ddi_max_lanes(struct intel_digital_port *dig_port) in intel_ddi_max_lanes() argument
4296 struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev); in intel_ddi_max_lanes()
4297 enum port port = dig_port->base.port; in intel_ddi_max_lanes()
4316 if (intel_ddi_a_force_4_lanes(dig_port)) { in intel_ddi_max_lanes()
4319 dig_port->saved_port_bits |= DDI_A_4_LANES; in intel_ddi_max_lanes()
4416 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); in intel_ddi_encoder_suspend() local
4424 intel_tc_port_disconnect_phy(dig_port); in intel_ddi_encoder_suspend()
4431 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); in intel_ddi_encoder_shutdown() local
4439 intel_tc_port_disconnect_phy(dig_port); in intel_ddi_encoder_shutdown()
4447 struct intel_digital_port *dig_port; in intel_ddi_init() local
4496 dig_port = kzalloc(sizeof(*dig_port), GFP_KERNEL); in intel_ddi_init()
4497 if (!dig_port) in intel_ddi_init()
4500 encoder = &dig_port->base; in intel_ddi_init()
4535 mutex_init(&dig_port->hdcp_mutex); in intel_ddi_init()
4536 dig_port->num_hdcp_streams = 0; in intel_ddi_init()
4640 dig_port->saved_port_bits = in intel_ddi_init()
4644 dig_port->saved_port_bits = in intel_ddi_init()
4649 dig_port->saved_port_bits |= DDI_BUF_PORT_REVERSAL; in intel_ddi_init()
4651 dig_port->dp.output_reg = INVALID_MMIO_REG; in intel_ddi_init()
4652 dig_port->max_lanes = intel_ddi_max_lanes(dig_port); in intel_ddi_init()
4653 dig_port->aux_ch = intel_bios_port_aux_ch(dev_priv, port); in intel_ddi_init()
4660 intel_tc_port_init(dig_port, is_legacy); in intel_ddi_init()
4667 dig_port->ddi_io_power_domain = POWER_DOMAIN_PORT_DDI_A_IO + in intel_ddi_init()
4671 if (!intel_ddi_init_dp_connector(dig_port)) in intel_ddi_init()
4674 dig_port->hpd_pulse = intel_dp_hpd_pulse; in intel_ddi_init()
4676 if (dig_port->dp.mso_link_count) in intel_ddi_init()
4683 if (!intel_ddi_init_hdmi_connector(dig_port)) in intel_ddi_init()
4689 dig_port->connected = intel_tc_port_connected; in intel_ddi_init()
4691 dig_port->connected = lpt_digital_port_connected; in intel_ddi_init()
4695 dig_port->connected = bdw_digital_port_connected; in intel_ddi_init()
4697 dig_port->connected = lpt_digital_port_connected; in intel_ddi_init()
4700 dig_port->connected = hsw_digital_port_connected; in intel_ddi_init()
4702 dig_port->connected = lpt_digital_port_connected; in intel_ddi_init()
4705 intel_infoframe_init(dig_port); in intel_ddi_init()
4711 kfree(dig_port); in intel_ddi_init()