aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_dp_mst.c
diff options
context:
space:
mode:
authorMika Kahola <mika.kahola@intel.com>2016-02-02 08:16:40 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2016-02-11 04:15:38 -0500
commit832d5bfd67f9b723b7b5662b8c187b43aa5d2ac8 (patch)
treeb1473171429fdff826afad305b63834b8c7f0563 /drivers/gpu/drm/i915/intel_dp_mst.c
parent587bf496d6186332ff863abffcf314b374c569e1 (diff)
drm/i915: DisplayPort-MST pixel clock check
It is possible the we request to have a mode that has higher pixel clock than our HW can support. This patch checks if requested pixel clock is lower than the one supported by the HW. The requested mode is discarded if we cannot support the requested pixel clock. This patch applies to DisplayPort MST. V2: - removed computation for max pixel clock V3: - cleanup by removing unnecessary lines V4: - max_pixclk variable renamed as max_dotclk Signed-off-by: Mika Kahola <mika.kahola@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1454419003-6001-4-git-send-email-mika.kahola@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp_mst.c')
-rw-r--r--drivers/gpu/drm/i915/intel_dp_mst.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index 2a2ab306ad84..a2bd698fe2f7 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -371,6 +371,8 @@ static enum drm_mode_status
371intel_dp_mst_mode_valid(struct drm_connector *connector, 371intel_dp_mst_mode_valid(struct drm_connector *connector,
372 struct drm_display_mode *mode) 372 struct drm_display_mode *mode)
373{ 373{
374 int max_dotclk = to_i915(connector->dev)->max_dotclk_freq;
375
374 /* TODO - validate mode against available PBN for link */ 376 /* TODO - validate mode against available PBN for link */
375 if (mode->clock < 10000) 377 if (mode->clock < 10000)
376 return MODE_CLOCK_LOW; 378 return MODE_CLOCK_LOW;
@@ -378,6 +380,9 @@ intel_dp_mst_mode_valid(struct drm_connector *connector,
378 if (mode->flags & DRM_MODE_FLAG_DBLCLK) 380 if (mode->flags & DRM_MODE_FLAG_DBLCLK)
379 return MODE_H_ILLEGAL; 381 return MODE_H_ILLEGAL;
380 382
383 if (mode->clock > max_dotclk)
384 return MODE_CLOCK_HIGH;
385
381 return MODE_OK; 386 return MODE_OK;
382} 387}
383 388