Lines Matching refs:encoder

962 static void intel_prepare_dp_ddi_buffers(struct intel_encoder *encoder,  in intel_prepare_dp_ddi_buffers()  argument
965 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_prepare_dp_ddi_buffers()
968 enum port port = encoder->port; in intel_prepare_dp_ddi_buffers()
999 static void intel_prepare_hdmi_ddi_buffers(struct intel_encoder *encoder, in intel_prepare_hdmi_ddi_buffers() argument
1002 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_prepare_hdmi_ddi_buffers()
1005 enum port port = encoder->port; in intel_prepare_hdmi_ddi_buffers()
1062 static uint32_t icl_pll_to_ddi_pll_sel(struct intel_encoder *encoder, in icl_pll_to_ddi_pll_sel() argument
1065 struct intel_crtc *crtc = to_intel_crtc(encoder->base.crtc); in icl_pll_to_ddi_pll_sel()
1112 struct intel_encoder *encoder; in hsw_fdi_link_train() local
1115 for_each_encoder_on_crtc(dev, &crtc->base, encoder) { in hsw_fdi_link_train()
1116 WARN_ON(encoder->type != INTEL_OUTPUT_ANALOG); in hsw_fdi_link_train()
1117 intel_prepare_dp_ddi_buffers(encoder, crtc_state); in hsw_fdi_link_train()
1239 static void intel_ddi_init_dp_buf_reg(struct intel_encoder *encoder) in intel_ddi_init_dp_buf_reg() argument
1241 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); in intel_ddi_init_dp_buf_reg()
1243 enc_to_dig_port(&encoder->base); in intel_ddi_init_dp_buf_reg()
1254 struct intel_encoder *encoder, *ret = NULL; in intel_ddi_get_crtc_encoder() local
1257 for_each_encoder_on_crtc(dev, &crtc->base, encoder) { in intel_ddi_get_crtc_encoder()
1258 ret = encoder; in intel_ddi_get_crtc_encoder()
1454 static void icl_ddi_clock_get(struct intel_encoder *encoder, in icl_ddi_clock_get() argument
1457 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in icl_ddi_clock_get()
1458 enum port port = encoder->port; in icl_ddi_clock_get()
1478 static void cnl_ddi_clock_get(struct intel_encoder *encoder, in cnl_ddi_clock_get() argument
1481 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in cnl_ddi_clock_get()
1532 static void skl_ddi_clock_get(struct intel_encoder *encoder, in skl_ddi_clock_get() argument
1535 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in skl_ddi_clock_get()
1581 static void hsw_ddi_clock_get(struct intel_encoder *encoder, in hsw_ddi_clock_get() argument
1584 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in hsw_ddi_clock_get()
1650 static void bxt_ddi_clock_get(struct intel_encoder *encoder, in bxt_ddi_clock_get() argument
1658 static void intel_ddi_clock_get(struct intel_encoder *encoder, in intel_ddi_clock_get() argument
1661 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_clock_get()
1664 hsw_ddi_clock_get(encoder, pipe_config); in intel_ddi_clock_get()
1666 skl_ddi_clock_get(encoder, pipe_config); in intel_ddi_clock_get()
1668 bxt_ddi_clock_get(encoder, pipe_config); in intel_ddi_clock_get()
1670 cnl_ddi_clock_get(encoder, pipe_config); in intel_ddi_clock_get()
1672 icl_ddi_clock_get(encoder, pipe_config); in intel_ddi_clock_get()
1732 struct intel_encoder *encoder = intel_ddi_get_crtc_encoder(crtc); in intel_ddi_enable_transcoder_func() local
1736 enum port port = encoder->port; in intel_ddi_enable_transcoder_func()
1868 struct intel_encoder *encoder = intel_connector->encoder; in intel_ddi_connector_get_hw_state() local
1870 enum port port = encoder->port; in intel_ddi_connector_get_hw_state()
1877 encoder->power_domain)) in intel_ddi_connector_get_hw_state()
1880 if (!encoder->get_hw_state(encoder, &pipe)) { in intel_ddi_connector_get_hw_state()
1919 intel_display_power_put(dev_priv, encoder->power_domain); in intel_ddi_connector_get_hw_state()
1924 bool intel_ddi_get_hw_state(struct intel_encoder *encoder, in intel_ddi_get_hw_state() argument
1927 struct drm_device *dev = encoder->base.dev; in intel_ddi_get_hw_state()
1929 enum port port = encoder->port; in intel_ddi_get_hw_state()
1935 encoder->power_domain)) in intel_ddi_get_hw_state()
1995 intel_display_power_put(dev_priv, encoder->power_domain); in intel_ddi_get_hw_state()
2019 static u64 intel_ddi_get_power_domains(struct intel_encoder *encoder, in intel_ddi_get_power_domains() argument
2033 dig_port = enc_to_dig_port(&encoder->base); in intel_ddi_get_power_domains()
2050 struct intel_encoder *encoder = intel_ddi_get_crtc_encoder(crtc); in intel_ddi_enable_pipe_clock() local
2051 enum port port = encoder->port; in intel_ddi_enable_pipe_clock()
2083 static void skl_ddi_set_iboost(struct intel_encoder *encoder, in skl_ddi_set_iboost() argument
2086 struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base); in skl_ddi_set_iboost()
2087 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in skl_ddi_set_iboost()
2088 enum port port = encoder->port; in skl_ddi_set_iboost()
2127 static void bxt_ddi_vswing_sequence(struct intel_encoder *encoder, in bxt_ddi_vswing_sequence() argument
2130 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in bxt_ddi_vswing_sequence()
2132 enum port port = encoder->port; in bxt_ddi_vswing_sequence()
2154 u8 intel_ddi_dp_voltage_max(struct intel_encoder *encoder) in intel_ddi_dp_voltage_max() argument
2156 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_dp_voltage_max()
2157 enum port port = encoder->port; in intel_ddi_dp_voltage_max()
2162 icl_get_combo_buf_trans(dev_priv, port, encoder->type, in intel_ddi_dp_voltage_max()
2167 if (encoder->type == INTEL_OUTPUT_EDP) in intel_ddi_dp_voltage_max()
2172 if (encoder->type == INTEL_OUTPUT_EDP) in intel_ddi_dp_voltage_max()
2177 if (encoder->type == INTEL_OUTPUT_EDP) in intel_ddi_dp_voltage_max()
2197 u8 intel_ddi_dp_pre_emphasis_max(struct intel_encoder *encoder, u8 voltage_swing) in intel_ddi_dp_pre_emphasis_max() argument
2212 static void cnl_ddi_vswing_program(struct intel_encoder *encoder, in cnl_ddi_vswing_program() argument
2215 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in cnl_ddi_vswing_program()
2217 enum port port = encoder->port; in cnl_ddi_vswing_program()
2276 static void cnl_ddi_vswing_sequence(struct intel_encoder *encoder, in cnl_ddi_vswing_sequence() argument
2279 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in cnl_ddi_vswing_sequence()
2280 enum port port = encoder->port; in cnl_ddi_vswing_sequence()
2288 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); in cnl_ddi_vswing_sequence()
2335 cnl_ddi_vswing_program(encoder, level, type); in cnl_ddi_vswing_sequence()
2401 static void icl_combo_phy_ddi_vswing_sequence(struct intel_encoder *encoder, in icl_combo_phy_ddi_vswing_sequence() argument
2405 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in icl_combo_phy_ddi_vswing_sequence()
2406 enum port port = encoder->port; in icl_combo_phy_ddi_vswing_sequence()
2416 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); in icl_combo_phy_ddi_vswing_sequence()
2471 static void icl_ddi_vswing_sequence(struct intel_encoder *encoder, u32 level, in icl_ddi_vswing_sequence() argument
2474 enum port port = encoder->port; in icl_ddi_vswing_sequence()
2477 icl_combo_phy_ddi_vswing_sequence(encoder, level, type); in icl_ddi_vswing_sequence()
2511 struct intel_encoder *encoder = &dport->base; in bxt_signal_levels() local
2515 icl_ddi_vswing_sequence(encoder, level, encoder->type); in bxt_signal_levels()
2517 cnl_ddi_vswing_sequence(encoder, level, encoder->type); in bxt_signal_levels()
2519 bxt_ddi_vswing_sequence(encoder, level, encoder->type); in bxt_signal_levels()
2528 struct intel_encoder *encoder = &dport->base; in ddi_signal_levels() local
2532 skl_ddi_set_iboost(encoder, level, encoder->type); in ddi_signal_levels()
2548 struct intel_encoder *encoder = in icl_map_plls_to_ports() local
2556 port = encoder->port; in icl_map_plls_to_ports()
2586 struct intel_encoder *encoder = in icl_unmap_plls_to_ports() local
2593 port = encoder->port; in icl_unmap_plls_to_ports()
2602 static void intel_ddi_clk_select(struct intel_encoder *encoder, in intel_ddi_clk_select() argument
2605 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_clk_select()
2606 enum port port = encoder->port; in intel_ddi_clk_select()
2617 icl_pll_to_ddi_pll_sel(encoder, pll)); in intel_ddi_clk_select()
2651 static void intel_ddi_clk_disable(struct intel_encoder *encoder) in intel_ddi_clk_disable() argument
2653 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_clk_disable()
2654 enum port port = encoder->port; in intel_ddi_clk_disable()
2670 static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder, in intel_ddi_pre_enable_dp() argument
2674 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); in intel_ddi_pre_enable_dp()
2675 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_pre_enable_dp()
2676 enum port port = encoder->port; in intel_ddi_pre_enable_dp()
2677 struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base); in intel_ddi_pre_enable_dp()
2691 intel_ddi_clk_select(encoder, crtc_state->shared_dpll); in intel_ddi_pre_enable_dp()
2696 icl_ddi_vswing_sequence(encoder, level, encoder->type); in intel_ddi_pre_enable_dp()
2698 cnl_ddi_vswing_sequence(encoder, level, encoder->type); in intel_ddi_pre_enable_dp()
2700 bxt_ddi_vswing_sequence(encoder, level, encoder->type); in intel_ddi_pre_enable_dp()
2702 intel_prepare_dp_ddi_buffers(encoder, crtc_state); in intel_ddi_pre_enable_dp()
2704 intel_ddi_init_dp_buf_reg(encoder); in intel_ddi_pre_enable_dp()
2715 static void intel_ddi_pre_enable_hdmi(struct intel_encoder *encoder, in intel_ddi_pre_enable_hdmi() argument
2719 struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base); in intel_ddi_pre_enable_hdmi()
2721 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_pre_enable_hdmi()
2722 enum port port = encoder->port; in intel_ddi_pre_enable_hdmi()
2724 struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base); in intel_ddi_pre_enable_hdmi()
2727 intel_ddi_clk_select(encoder, crtc_state->shared_dpll); in intel_ddi_pre_enable_hdmi()
2732 icl_ddi_vswing_sequence(encoder, level, INTEL_OUTPUT_HDMI); in intel_ddi_pre_enable_hdmi()
2734 cnl_ddi_vswing_sequence(encoder, level, INTEL_OUTPUT_HDMI); in intel_ddi_pre_enable_hdmi()
2736 bxt_ddi_vswing_sequence(encoder, level, INTEL_OUTPUT_HDMI); in intel_ddi_pre_enable_hdmi()
2738 intel_prepare_hdmi_ddi_buffers(encoder, level); in intel_ddi_pre_enable_hdmi()
2741 skl_ddi_set_iboost(encoder, level, INTEL_OUTPUT_HDMI); in intel_ddi_pre_enable_hdmi()
2745 intel_dig_port->set_infoframes(&encoder->base, in intel_ddi_pre_enable_hdmi()
2750 static void intel_ddi_pre_enable(struct intel_encoder *encoder, in intel_ddi_pre_enable() argument
2776 intel_ddi_pre_enable_hdmi(encoder, crtc_state, conn_state); in intel_ddi_pre_enable()
2778 intel_ddi_pre_enable_dp(encoder, crtc_state, conn_state); in intel_ddi_pre_enable()
2781 static void intel_disable_ddi_buf(struct intel_encoder *encoder) in intel_disable_ddi_buf() argument
2783 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_disable_ddi_buf()
2784 enum port port = encoder->port; in intel_disable_ddi_buf()
2804 static void intel_ddi_post_disable_dp(struct intel_encoder *encoder, in intel_ddi_post_disable_dp() argument
2808 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_post_disable_dp()
2809 struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base); in intel_ddi_post_disable_dp()
2823 intel_disable_ddi_buf(encoder); in intel_ddi_post_disable_dp()
2830 intel_ddi_clk_disable(encoder); in intel_ddi_post_disable_dp()
2836 static void intel_ddi_post_disable_hdmi(struct intel_encoder *encoder, in intel_ddi_post_disable_hdmi() argument
2840 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_post_disable_hdmi()
2841 struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base); in intel_ddi_post_disable_hdmi()
2844 dig_port->set_infoframes(&encoder->base, false, in intel_ddi_post_disable_hdmi()
2849 intel_disable_ddi_buf(encoder); in intel_ddi_post_disable_hdmi()
2853 intel_ddi_clk_disable(encoder); in intel_ddi_post_disable_hdmi()
2858 static void intel_ddi_post_disable(struct intel_encoder *encoder, in intel_ddi_post_disable() argument
2876 intel_ddi_post_disable_hdmi(encoder, in intel_ddi_post_disable()
2879 intel_ddi_post_disable_dp(encoder, in intel_ddi_post_disable()
2883 void intel_ddi_fdi_post_disable(struct intel_encoder *encoder, in intel_ddi_fdi_post_disable() argument
2887 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_fdi_post_disable()
2900 intel_disable_ddi_buf(encoder); in intel_ddi_fdi_post_disable()
2901 intel_ddi_clk_disable(encoder); in intel_ddi_fdi_post_disable()
2917 static void intel_enable_ddi_dp(struct intel_encoder *encoder, in intel_enable_ddi_dp() argument
2921 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_enable_ddi_dp()
2922 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); in intel_enable_ddi_dp()
2923 enum port port = encoder->port; in intel_enable_ddi_dp()
2933 intel_audio_codec_enable(encoder, crtc_state, conn_state); in intel_enable_ddi_dp()
2936 static void intel_enable_ddi_hdmi(struct intel_encoder *encoder, in intel_enable_ddi_hdmi() argument
2940 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_enable_ddi_hdmi()
2941 struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base); in intel_enable_ddi_hdmi()
2943 enum port port = encoder->port; in intel_enable_ddi_hdmi()
2945 if (!intel_hdmi_handle_sink_scrambling(encoder, connector, in intel_enable_ddi_hdmi()
3001 intel_audio_codec_enable(encoder, crtc_state, conn_state); in intel_enable_ddi_hdmi()
3004 static void intel_enable_ddi(struct intel_encoder *encoder, in intel_enable_ddi() argument
3009 intel_enable_ddi_hdmi(encoder, crtc_state, conn_state); in intel_enable_ddi()
3011 intel_enable_ddi_dp(encoder, crtc_state, conn_state); in intel_enable_ddi()
3019 static void intel_disable_ddi_dp(struct intel_encoder *encoder, in intel_disable_ddi_dp() argument
3023 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); in intel_disable_ddi_dp()
3028 intel_audio_codec_disable(encoder, in intel_disable_ddi_dp()
3036 static void intel_disable_ddi_hdmi(struct intel_encoder *encoder, in intel_disable_ddi_hdmi() argument
3043 intel_audio_codec_disable(encoder, in intel_disable_ddi_hdmi()
3046 if (!intel_hdmi_handle_sink_scrambling(encoder, connector, in intel_disable_ddi_hdmi()
3052 static void intel_disable_ddi(struct intel_encoder *encoder, in intel_disable_ddi() argument
3059 intel_disable_ddi_hdmi(encoder, old_crtc_state, old_conn_state); in intel_disable_ddi()
3061 intel_disable_ddi_dp(encoder, old_crtc_state, old_conn_state); in intel_disable_ddi()
3064 static void bxt_ddi_pre_pll_enable(struct intel_encoder *encoder, in bxt_ddi_pre_pll_enable() argument
3070 bxt_ddi_phy_set_lane_optim_mask(encoder, mask); in bxt_ddi_pre_pll_enable()
3141 void intel_ddi_get_config(struct intel_encoder *encoder, in intel_ddi_get_config() argument
3144 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_get_config()
3186 intel_dig_port = enc_to_dig_port(&encoder->base); in intel_ddi_get_config()
3188 if (intel_dig_port->infoframe_enabled(&encoder->base, pipe_config)) in intel_ddi_get_config()
3205 if (encoder->type == INTEL_OUTPUT_EDP) in intel_ddi_get_config()
3226 if (encoder->type == INTEL_OUTPUT_EDP && dev_priv->vbt.edp.bpp && in intel_ddi_get_config()
3246 intel_ddi_clock_get(encoder, pipe_config); in intel_ddi_get_config()
3250 bxt_ddi_phy_get_lane_lat_optim_mask(encoder); in intel_ddi_get_config()
3256 intel_ddi_compute_output_type(struct intel_encoder *encoder, in intel_ddi_compute_output_type() argument
3273 static bool intel_ddi_compute_config(struct intel_encoder *encoder, in intel_ddi_compute_config() argument
3277 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_compute_config()
3278 enum port port = encoder->port; in intel_ddi_compute_config()
3285 ret = intel_hdmi_compute_config(encoder, pipe_config, conn_state); in intel_ddi_compute_config()
3287 ret = intel_dp_compute_config(encoder, pipe_config, conn_state); in intel_ddi_compute_config()
3364 static int intel_hdmi_reset_link(struct intel_encoder *encoder, in intel_hdmi_reset_link() argument
3367 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_hdmi_reset_link()
3368 struct intel_hdmi *hdmi = enc_to_intel_hdmi(&encoder->base); in intel_hdmi_reset_link()
3435 static bool intel_ddi_hotplug(struct intel_encoder *encoder, in intel_ddi_hotplug() argument
3442 changed = intel_encoder_hotplug(encoder, connector); in intel_ddi_hotplug()
3448 ret = intel_hdmi_reset_link(encoder, &ctx); in intel_ddi_hotplug()
3450 ret = intel_dp_retrain_link(encoder, &ctx); in intel_ddi_hotplug()
3547 struct drm_encoder *encoder; in intel_ddi_init() local
3578 encoder = &intel_encoder->base; in intel_ddi_init()
3580 drm_encoder_init(&dev_priv->drm, encoder, &intel_ddi_funcs, in intel_ddi_init()
3673 drm_encoder_cleanup(encoder); in intel_ddi_init()