From: Ville Syrjälä <ville.syrj...@linux.intel.com>

Use drm_dp_downstream_mode() to get a suitable mode for downstream
facing ports which don't have an EDID.

Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 047449253a54..2798621a466a 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -6310,7 +6310,7 @@ static int intel_dp_get_modes(struct drm_connector 
*connector)
        }
 
        /* if eDP has no EDID, fall back to fixed mode */
-       if (intel_dp_is_edp(intel_attached_dp(to_intel_connector(connector))) &&
+       if (intel_dp_is_edp(intel_attached_dp(intel_connector)) &&
            intel_connector->panel.fixed_mode) {
                struct drm_display_mode *mode;
 
@@ -6322,6 +6322,19 @@ static int intel_dp_get_modes(struct drm_connector 
*connector)
                }
        }
 
+       if (!edid) {
+               struct intel_dp *intel_dp = intel_attached_dp(intel_connector);
+               struct drm_display_mode *mode;
+
+               mode = drm_dp_downstream_mode(connector->dev,
+                                             intel_dp->dpcd,
+                                             intel_dp->downstream_ports);
+               if (mode) {
+                       drm_mode_probed_add(connector, mode);
+                       return 1;
+               }
+       }
+
        return 0;
 }
 
-- 
2.26.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to