|
@@ -4487,6 +4487,10 @@ static void gen6_set_rps(struct drm_device *dev, u8 val)
|
|
|
{
|
|
|
struct drm_i915_private *dev_priv = dev->dev_private;
|
|
|
|
|
|
+ /* WaGsvDisableTurbo: Workaround to disable turbo on BXT A* */
|
|
|
+ if (IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0))
|
|
|
+ return;
|
|
|
+
|
|
|
WARN_ON(!mutex_is_locked(&dev_priv->rps.hw_lock));
|
|
|
WARN_ON(val > dev_priv->rps.max_freq);
|
|
|
WARN_ON(val < dev_priv->rps.min_freq);
|
|
@@ -4807,6 +4811,12 @@ static void gen9_enable_rps(struct drm_device *dev)
|
|
|
|
|
|
gen6_init_rps_frequencies(dev);
|
|
|
|
|
|
+ /* WaGsvDisableTurbo: Workaround to disable turbo on BXT A* */
|
|
|
+ if (IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0)) {
|
|
|
+ intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
/* Program defaults and thresholds for RPS*/
|
|
|
I915_WRITE(GEN6_RC_VIDEO_FREQ,
|
|
|
GEN9_FREQUENCY(dev_priv->rps.rp1_freq));
|