aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2016-10-31 16:37:12 -0400
committerVille Syrjälä <ville.syrjala@linux.intel.com>2016-11-01 10:40:38 -0400
commit4c75b9405ea34c9223890d6470b809126b45c173 (patch)
treedf648e399257a71078acb487245ef50e9ff792d5 /drivers/gpu/drm/i915
parent5ab0d85b6bf01a9e47e74ebc2876534115444c6e (diff)
drm/i915: Pass dev_priv to cdclk update funcs
Unify our approach to things by passing around dev_priv instead of dev. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1477946245-14134-14-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c35
1 files changed, 15 insertions, 20 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 71a2fc50ed87..3c26ea01b7a2 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5842,10 +5842,8 @@ static int intel_compute_max_dotclk(struct drm_i915_private *dev_priv)
5842 5842
5843static int skl_calc_cdclk(int max_pixclk, int vco); 5843static int skl_calc_cdclk(int max_pixclk, int vco);
5844 5844
5845static void intel_update_max_cdclk(struct drm_device *dev) 5845static void intel_update_max_cdclk(struct drm_i915_private *dev_priv)
5846{ 5846{
5847 struct drm_i915_private *dev_priv = to_i915(dev);
5848
5849 if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) { 5847 if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) {
5850 u32 limit = I915_READ(SKL_DFSM) & SKL_DFSM_CDCLK_LIMIT_MASK; 5848 u32 limit = I915_READ(SKL_DFSM) & SKL_DFSM_CDCLK_LIMIT_MASK;
5851 int max_cdclk, vco; 5849 int max_cdclk, vco;
@@ -5903,11 +5901,9 @@ static void intel_update_max_cdclk(struct drm_device *dev)
5903 dev_priv->max_dotclk_freq); 5901 dev_priv->max_dotclk_freq);
5904} 5902}
5905 5903
5906static void intel_update_cdclk(struct drm_device *dev) 5904static void intel_update_cdclk(struct drm_i915_private *dev_priv)
5907{ 5905{
5908 struct drm_i915_private *dev_priv = to_i915(dev); 5906 dev_priv->cdclk_freq = dev_priv->display.get_display_clock_speed(&dev_priv->drm);
5909
5910 dev_priv->cdclk_freq = dev_priv->display.get_display_clock_speed(dev);
5911 5907
5912 if (INTEL_GEN(dev_priv) >= 9) 5908 if (INTEL_GEN(dev_priv) >= 9)
5913 DRM_DEBUG_DRIVER("Current CD clock rate: %d kHz, VCO: %d kHz, ref: %d kHz\n", 5909 DRM_DEBUG_DRIVER("Current CD clock rate: %d kHz, VCO: %d kHz, ref: %d kHz\n",
@@ -6068,14 +6064,14 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv, int cdclk)
6068 return; 6064 return;
6069 } 6065 }
6070 6066
6071 intel_update_cdclk(&dev_priv->drm); 6067 intel_update_cdclk(dev_priv);
6072} 6068}
6073 6069
6074static void bxt_sanitize_cdclk(struct drm_i915_private *dev_priv) 6070static void bxt_sanitize_cdclk(struct drm_i915_private *dev_priv)
6075{ 6071{
6076 u32 cdctl, expected; 6072 u32 cdctl, expected;
6077 6073
6078 intel_update_cdclk(&dev_priv->drm); 6074 intel_update_cdclk(dev_priv);
6079 6075
6080 if (dev_priv->cdclk_pll.vco == 0 || 6076 if (dev_priv->cdclk_pll.vco == 0 ||
6081 dev_priv->cdclk_freq == dev_priv->cdclk_pll.ref) 6077 dev_priv->cdclk_freq == dev_priv->cdclk_pll.ref)
@@ -6208,7 +6204,7 @@ void skl_set_preferred_cdclk_vco(struct drm_i915_private *dev_priv, int vco)
6208 dev_priv->skl_preferred_vco_freq = vco; 6204 dev_priv->skl_preferred_vco_freq = vco;
6209 6205
6210 if (changed) 6206 if (changed)
6211 intel_update_max_cdclk(&dev_priv->drm); 6207 intel_update_max_cdclk(dev_priv);
6212} 6208}
6213 6209
6214static void 6210static void
@@ -6294,7 +6290,6 @@ static bool skl_cdclk_wait_for_pcu_ready(struct drm_i915_private *dev_priv)
6294 6290
6295static void skl_set_cdclk(struct drm_i915_private *dev_priv, int cdclk, int vco) 6291static void skl_set_cdclk(struct drm_i915_private *dev_priv, int cdclk, int vco)
6296{ 6292{
6297 struct drm_device *dev = &dev_priv->drm;
6298 u32 freq_select, pcu_ack; 6293 u32 freq_select, pcu_ack;
6299 6294
6300 WARN_ON((cdclk == 24000) != (vco == 0)); 6295 WARN_ON((cdclk == 24000) != (vco == 0));
@@ -6345,7 +6340,7 @@ static void skl_set_cdclk(struct drm_i915_private *dev_priv, int cdclk, int vco)
6345 sandybridge_pcode_write(dev_priv, SKL_PCODE_CDCLK_CONTROL, pcu_ack); 6340 sandybridge_pcode_write(dev_priv, SKL_PCODE_CDCLK_CONTROL, pcu_ack);
6346 mutex_unlock(&dev_priv->rps.hw_lock); 6341 mutex_unlock(&dev_priv->rps.hw_lock);
6347 6342
6348 intel_update_cdclk(dev); 6343 intel_update_cdclk(dev_priv);
6349} 6344}
6350 6345
6351static void skl_sanitize_cdclk(struct drm_i915_private *dev_priv); 6346static void skl_sanitize_cdclk(struct drm_i915_private *dev_priv);
@@ -6392,7 +6387,7 @@ static void skl_sanitize_cdclk(struct drm_i915_private *dev_priv)
6392 if ((I915_READ(SWF_ILK(0x18)) & 0x00FFFFFF) == 0) 6387 if ((I915_READ(SWF_ILK(0x18)) & 0x00FFFFFF) == 0)
6393 goto sanitize; 6388 goto sanitize;
6394 6389
6395 intel_update_cdclk(&dev_priv->drm); 6390 intel_update_cdclk(dev_priv);
6396 /* Is PLL enabled and locked ? */ 6391 /* Is PLL enabled and locked ? */
6397 if (dev_priv->cdclk_pll.vco == 0 || 6392 if (dev_priv->cdclk_pll.vco == 0 ||
6398 dev_priv->cdclk_freq == dev_priv->cdclk_pll.ref) 6393 dev_priv->cdclk_freq == dev_priv->cdclk_pll.ref)
@@ -6483,7 +6478,7 @@ static void valleyview_set_cdclk(struct drm_device *dev, int cdclk)
6483 6478
6484 mutex_unlock(&dev_priv->sb_lock); 6479 mutex_unlock(&dev_priv->sb_lock);
6485 6480
6486 intel_update_cdclk(dev); 6481 intel_update_cdclk(dev_priv);
6487} 6482}
6488 6483
6489static void cherryview_set_cdclk(struct drm_device *dev, int cdclk) 6484static void cherryview_set_cdclk(struct drm_device *dev, int cdclk)
@@ -6524,7 +6519,7 @@ static void cherryview_set_cdclk(struct drm_device *dev, int cdclk)
6524 } 6519 }
6525 mutex_unlock(&dev_priv->rps.hw_lock); 6520 mutex_unlock(&dev_priv->rps.hw_lock);
6526 6521
6527 intel_update_cdclk(dev); 6522 intel_update_cdclk(dev_priv);
6528} 6523}
6529 6524
6530static int valleyview_calc_cdclk(struct drm_i915_private *dev_priv, 6525static int valleyview_calc_cdclk(struct drm_i915_private *dev_priv,
@@ -10188,7 +10183,7 @@ static void hsw_restore_lcpll(struct drm_i915_private *dev_priv)
10188 } 10183 }
10189 10184
10190 intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL); 10185 intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
10191 intel_update_cdclk(&dev_priv->drm); 10186 intel_update_cdclk(dev_priv);
10192} 10187}
10193 10188
10194/* 10189/*
@@ -10368,7 +10363,7 @@ static void broadwell_set_cdclk(struct drm_device *dev, int cdclk)
10368 10363
10369 I915_WRITE(CDCLK_FREQ, DIV_ROUND_CLOSEST(cdclk, 1000) - 1); 10364 I915_WRITE(CDCLK_FREQ, DIV_ROUND_CLOSEST(cdclk, 1000) - 1);
10370 10365
10371 intel_update_cdclk(dev); 10366 intel_update_cdclk(dev_priv);
10372 10367
10373 WARN(cdclk != dev_priv->cdclk_freq, 10368 WARN(cdclk != dev_priv->cdclk_freq,
10374 "cdclk requested %d kHz but got %d kHz\n", 10369 "cdclk requested %d kHz but got %d kHz\n",
@@ -16323,7 +16318,7 @@ void intel_modeset_init_hw(struct drm_device *dev)
16323{ 16318{
16324 struct drm_i915_private *dev_priv = to_i915(dev); 16319 struct drm_i915_private *dev_priv = to_i915(dev);
16325 16320
16326 intel_update_cdclk(dev); 16321 intel_update_cdclk(dev_priv);
16327 16322
16328 dev_priv->atomic_cdclk_freq = dev_priv->cdclk_freq; 16323 dev_priv->atomic_cdclk_freq = dev_priv->cdclk_freq;
16329 16324
@@ -16494,12 +16489,12 @@ int intel_modeset_init(struct drm_device *dev)
16494 } 16489 }
16495 16490
16496 intel_update_czclk(dev_priv); 16491 intel_update_czclk(dev_priv);
16497 intel_update_cdclk(dev); 16492 intel_update_cdclk(dev_priv);
16498 16493
16499 intel_shared_dpll_init(dev); 16494 intel_shared_dpll_init(dev);
16500 16495
16501 if (dev_priv->max_cdclk_freq == 0) 16496 if (dev_priv->max_cdclk_freq == 0)
16502 intel_update_max_cdclk(dev); 16497 intel_update_max_cdclk(dev_priv);
16503 16498
16504 /* Just disable it once at startup */ 16499 /* Just disable it once at startup */
16505 i915_disable_vga(dev); 16500 i915_disable_vga(dev);