With downclock mode and DRRS now operating independently user can
request a modeset on downclock mode. In that case intel_dp_mode_valid()
should validate the downclock mode as well if that is requested.

Cc: Jani Nikula <jani.nik...@linux.intel.com>
Cc: Ville Syrjala <ville.syrj...@linux.intel.com>
Signed-off-by: Manasi Navare <manasi.d.nav...@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 30526c02b343..0e400629e85c 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -615,6 +615,8 @@ intel_dp_mode_valid(struct drm_connector *connector,
        struct intel_dp *intel_dp = intel_attached_dp(connector);
        struct intel_connector *intel_connector = to_intel_connector(connector);
        struct drm_display_mode *fixed_mode = intel_connector->panel.fixed_mode;
+       struct drm_display_mode *downclock_mode =
+               intel_connector->panel.downclock_mode;
        int target_clock = mode->clock;
        int max_rate, mode_rate, max_lanes, max_link_clock;
        int max_dotclk;
@@ -631,7 +633,10 @@ intel_dp_mode_valid(struct drm_connector *connector,
                if (mode->vdisplay > fixed_mode->vdisplay)
                        return MODE_PANEL;
 
-               target_clock = fixed_mode->clock;
+               if (target_clock < fixed_mode->clock && downclock_mode)
+                       target_clock = downclock_mode->clock;
+               else
+                       target_clock = fixed_mode->clock;
        }
 
        max_link_clock = intel_dp_max_link_rate(intel_dp);
-- 
2.18.0

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

Reply via email to