drm/i915/glk: Allow dotclock up to 2 * cdclk on geminilake
authorAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Fri, 2 Dec 2016 08:23:55 +0000 (10:23 +0200)
committerAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Fri, 2 Dec 2016 14:42:11 +0000 (16:42 +0200)
Geminilake has double wide pipes so it can output two pixels per CD
clock.

Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1480667037-11215-8-git-send-email-ander.conselvan.de.oliveira@intel.com
drivers/gpu/drm/i915/intel_display.c

index 2490fadfb7b454ca5374d5a103bbb6ca2c8e6721..aabef5e13bd408bbe5de94b2b8e19437730e2925 100644 (file)
@@ -5805,8 +5805,10 @@ static int intel_compute_max_dotclk(struct drm_i915_private *dev_priv)
 {
        int max_cdclk_freq = dev_priv->max_cdclk_freq;
 
-       if (INTEL_INFO(dev_priv)->gen >= 9 ||
-           IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
+       if (IS_GEMINILAKE(dev_priv))
+               return 2 * max_cdclk_freq;
+       else if (INTEL_INFO(dev_priv)->gen >= 9 ||
+                IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
                return max_cdclk_freq;
        else if (IS_CHERRYVIEW(dev_priv))
                return max_cdclk_freq*95/100;
@@ -6563,9 +6565,9 @@ static int valleyview_calc_cdclk(struct drm_i915_private *dev_priv,
 
 static int glk_calc_cdclk(int max_pixclk)
 {
-       if (max_pixclk > 158400)
+       if (max_pixclk > 2 * 158400)
                return 316800;
-       else if (max_pixclk > 79200)
+       else if (max_pixclk > 2 * 79200)
                return 158400;
        else
                return 79200;