diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_pm.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index d52a15df6917..071a76b9ac52 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c | |||
@@ -4449,7 +4449,7 @@ static void gen6_set_rps(struct drm_device *dev, u8 val) | |||
4449 | POSTING_READ(GEN6_RPNSWREQ); | 4449 | POSTING_READ(GEN6_RPNSWREQ); |
4450 | 4450 | ||
4451 | dev_priv->rps.cur_freq = val; | 4451 | dev_priv->rps.cur_freq = val; |
4452 | trace_intel_gpu_freq_change(val * 50); | 4452 | trace_intel_gpu_freq_change(intel_gpu_freq(dev_priv, val)); |
4453 | } | 4453 | } |
4454 | 4454 | ||
4455 | static void valleyview_set_rps(struct drm_device *dev, u8 val) | 4455 | static void valleyview_set_rps(struct drm_device *dev, u8 val) |
@@ -7255,7 +7255,8 @@ static int chv_freq_opcode(struct drm_i915_private *dev_priv, int val) | |||
7255 | int intel_gpu_freq(struct drm_i915_private *dev_priv, int val) | 7255 | int intel_gpu_freq(struct drm_i915_private *dev_priv, int val) |
7256 | { | 7256 | { |
7257 | if (IS_GEN9(dev_priv->dev)) | 7257 | if (IS_GEN9(dev_priv->dev)) |
7258 | return (val * GT_FREQUENCY_MULTIPLIER) / GEN9_FREQ_SCALER; | 7258 | return DIV_ROUND_CLOSEST(val * GT_FREQUENCY_MULTIPLIER, |
7259 | GEN9_FREQ_SCALER); | ||
7259 | else if (IS_CHERRYVIEW(dev_priv->dev)) | 7260 | else if (IS_CHERRYVIEW(dev_priv->dev)) |
7260 | return chv_gpu_freq(dev_priv, val); | 7261 | return chv_gpu_freq(dev_priv, val); |
7261 | else if (IS_VALLEYVIEW(dev_priv->dev)) | 7262 | else if (IS_VALLEYVIEW(dev_priv->dev)) |
@@ -7267,13 +7268,14 @@ int intel_gpu_freq(struct drm_i915_private *dev_priv, int val) | |||
7267 | int intel_freq_opcode(struct drm_i915_private *dev_priv, int val) | 7268 | int intel_freq_opcode(struct drm_i915_private *dev_priv, int val) |
7268 | { | 7269 | { |
7269 | if (IS_GEN9(dev_priv->dev)) | 7270 | if (IS_GEN9(dev_priv->dev)) |
7270 | return (val * GEN9_FREQ_SCALER) / GT_FREQUENCY_MULTIPLIER; | 7271 | return DIV_ROUND_CLOSEST(val * GEN9_FREQ_SCALER, |
7272 | GT_FREQUENCY_MULTIPLIER); | ||
7271 | else if (IS_CHERRYVIEW(dev_priv->dev)) | 7273 | else if (IS_CHERRYVIEW(dev_priv->dev)) |
7272 | return chv_freq_opcode(dev_priv, val); | 7274 | return chv_freq_opcode(dev_priv, val); |
7273 | else if (IS_VALLEYVIEW(dev_priv->dev)) | 7275 | else if (IS_VALLEYVIEW(dev_priv->dev)) |
7274 | return byt_freq_opcode(dev_priv, val); | 7276 | return byt_freq_opcode(dev_priv, val); |
7275 | else | 7277 | else |
7276 | return val / GT_FREQUENCY_MULTIPLIER; | 7278 | return DIV_ROUND_CLOSEST(val, GT_FREQUENCY_MULTIPLIER); |
7277 | } | 7279 | } |
7278 | 7280 | ||
7279 | struct request_boost { | 7281 | struct request_boost { |