Revert "drm/i915: fix infinite loop at gen6_update_ring_freq"
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 10 Apr 2014 07:01:40 +0000 (09:01 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 10 Apr 2014 07:01:40 +0000 (09:01 +0200)
This reverts commit 4b28a1f3ef55a3b0b68dbab1fe6dbaf18e186710.

This patch duct-tapes over some issue in the current bdw rps patches
which must wait with enabling rc6/rps until the very first batch has
been submitted by userspace.

But those patches aren't merged yet, and for upstream we need to have
an in-kernel emission of the very first batch. I shouldn't have
merged this patch so let's revert it again.

Also Imre noticed that even when rps is set up normally there's a
small window (due to the 1s delay of the async rps init work) where we
could runtime suspend already and blow up all over the place. Imre has
a proper fix to block runtime pm until the rps init work has
successfully completed.

Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_pm.c

index 8531cf6e2774c3eccf93389a1f7a25c8f0022965..dc7adadbb945aeada45778c0de16a9ace2ac5ae4 100644 (file)
@@ -3522,8 +3522,7 @@ void gen6_update_ring_freq(struct drm_device *dev)
         * to use for memory access.  We do this by specifying the IA frequency
         * the PCU should use as a reference to determine the ring frequency.
         */
-       for (gpu_freq = dev_priv->rps.max_freq_softlimit;
-            gpu_freq >= dev_priv->rps.min_freq_softlimit && gpu_freq != 0;
+       for (gpu_freq = dev_priv->rps.max_freq_softlimit; gpu_freq >= dev_priv->rps.min_freq_softlimit;
             gpu_freq--) {
                int diff = dev_priv->rps.max_freq_softlimit - gpu_freq;
                unsigned int ia_freq = 0, ring_freq = 0;