From: Ville Syrjälä <[email protected]>

As with HDMI let's can expose the margin properties for DP/LSPCON
on ilk+. I don't think DP has anything resembling the AVI infoframe
bar information so we don't have to worry about that part except
with LSPCON.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=29723
Signed-off-by: Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_dp.c     | 27 ++++++++++++---------
 drivers/gpu/drm/i915/display/intel_lspcon.c |  2 ++
 2 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 058c34013f58..a00b10f070e0 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -2129,7 +2129,7 @@ intel_dp_ycbcr420_config(struct intel_dp *intel_dp,
 
        crtc_state->output_format = INTEL_OUTPUT_FORMAT_YCBCR420;
 
-       return intel_pch_panel_fitting(crtc_state, conn_state);
+       return 0;
 }
 
 bool intel_dp_limited_color_range(const struct intel_crtc_state *crtc_state,
@@ -2192,18 +2192,10 @@ intel_dp_compute_config(struct intel_encoder *encoder,
        else
                pipe_config->has_audio = intel_conn_state->force_audio == 
HDMI_AUDIO_ON;
 
-       if (intel_dp_is_edp(intel_dp) && intel_connector->panel.fixed_mode) {
+       if (intel_dp_is_edp(intel_dp) && intel_connector->panel.fixed_mode)
                intel_fixed_panel_mode(intel_connector->panel.fixed_mode,
                                       adjusted_mode);
 
-               if (HAS_GMCH(dev_priv))
-                       ret = intel_gmch_panel_fitting(pipe_config, conn_state);
-               else
-                       ret = intel_pch_panel_fitting(pipe_config, conn_state);
-               if (ret)
-                       return ret;
-       }
-
        if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN)
                return -EINVAL;
 
@@ -2214,6 +2206,13 @@ intel_dp_compute_config(struct intel_encoder *encoder,
        if (adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK)
                return -EINVAL;
 
+       if (HAS_GMCH(dev_priv) && intel_dp_is_edp(intel_dp))
+               ret = intel_gmch_panel_fitting(pipe_config, conn_state);
+       else if (!HAS_GMCH(dev_priv))
+               ret = intel_pch_panel_fitting(pipe_config, conn_state);
+       if (ret)
+               return ret;
+
        ret = intel_dp_compute_link_config(encoder, pipe_config, conn_state);
        if (ret < 0)
                return ret;
@@ -6356,6 +6355,10 @@ intel_dp_add_properties(struct intel_dp *intel_dp, 
struct drm_connector *connect
        else if (INTEL_GEN(dev_priv) >= 5)
                drm_connector_attach_max_bpc_property(connector, 6, 12);
 
+       /*
+        * FIXME: margins and scaling_mode are implemented
+        * in a mutually exclusive way for the time being.
+        */
        if (intel_dp_is_edp(intel_dp)) {
                u32 allowed_scalers;
 
@@ -6366,7 +6369,9 @@ intel_dp_add_properties(struct intel_dp *intel_dp, struct 
drm_connector *connect
                drm_connector_attach_scaling_mode_property(connector, 
allowed_scalers);
 
                connector->state->scaling_mode = DRM_MODE_SCALE_ASPECT;
-
+       } else if (!HAS_GMCH(dev_priv)) {
+               drm_mode_create_tv_margin_properties(&dev_priv->drm);
+               drm_connector_attach_tv_margin_properties(connector);
        }
 }
 
diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c 
b/drivers/gpu/drm/i915/display/intel_lspcon.c
index f8f1308643a9..664977157081 100644
--- a/drivers/gpu/drm/i915/display/intel_lspcon.c
+++ b/drivers/gpu/drm/i915/display/intel_lspcon.c
@@ -508,6 +508,8 @@ void lspcon_set_infoframes(struct intel_encoder *encoder,
                                           HDMI_QUANTIZATION_RANGE_LIMITED :
                                           HDMI_QUANTIZATION_RANGE_FULL);
 
+       drm_hdmi_avi_infoframe_bars(&frame.avi, conn_state);
+
        ret = hdmi_infoframe_pack(&frame, buf, sizeof(buf));
        if (ret < 0) {
                DRM_ERROR("Failed to pack AVI IF\n");
-- 
2.21.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to