diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2016-10-31 16:37:12 -0400 |
---|---|---|
committer | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2016-11-01 10:40:38 -0400 |
commit | 4c75b9405ea34c9223890d6470b809126b45c173 (patch) | |
tree | df648e399257a71078acb487245ef50e9ff792d5 /drivers/gpu/drm/i915 | |
parent | 5ab0d85b6bf01a9e47e74ebc2876534115444c6e (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.c | 35 |
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 | ||
5843 | static int skl_calc_cdclk(int max_pixclk, int vco); | 5843 | static int skl_calc_cdclk(int max_pixclk, int vco); |
5844 | 5844 | ||
5845 | static void intel_update_max_cdclk(struct drm_device *dev) | 5845 | static 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 | ||
5906 | static void intel_update_cdclk(struct drm_device *dev) | 5904 | static 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 | ||
6074 | static void bxt_sanitize_cdclk(struct drm_i915_private *dev_priv) | 6070 | static 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 | ||
6214 | static void | 6210 | static void |
@@ -6294,7 +6290,6 @@ static bool skl_cdclk_wait_for_pcu_ready(struct drm_i915_private *dev_priv) | |||
6294 | 6290 | ||
6295 | static void skl_set_cdclk(struct drm_i915_private *dev_priv, int cdclk, int vco) | 6291 | static 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 | ||
6351 | static void skl_sanitize_cdclk(struct drm_i915_private *dev_priv); | 6346 | static 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 | ||
6489 | static void cherryview_set_cdclk(struct drm_device *dev, int cdclk) | 6484 | static 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 | ||
6530 | static int valleyview_calc_cdclk(struct drm_i915_private *dev_priv, | 6525 | static 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); |