drm/i915: Do not serialize forcewake acquire across domains
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>
Thu, 7 Apr 2016 16:04:34 +0000 (17:04 +0100)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Tue, 12 Apr 2016 13:30:41 +0000 (14:30 +0100)
On platforms with multiple forcewake domains it seems more efficient
to request all desired ones and then to wait for acks to avoid
needlessly serializing on each domain.

v2: Rebase.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/1460045074-1006-1-git-send-email-tvrtko.ursulin@linux.intel.com
drivers/gpu/drm/i915/intel_uncore.c

index 963a3875d43683976c3ad50ac7b1c7f759265467..dcf38bb5a09761976478b4531547653307a06448 100644 (file)
@@ -115,8 +115,10 @@ fw_domains_get(struct drm_i915_private *dev_priv, enum forcewake_domains fw_doma
        for_each_fw_domain_masked(d, fw_domains, dev_priv) {
                fw_domain_wait_ack_clear(d);
                fw_domain_get(d);
-               fw_domain_wait_ack(d);
        }
+
+       for_each_fw_domain_masked(d, fw_domains, dev_priv)
+               fw_domain_wait_ack(d);
 }
 
 static void