The trick of using an uncached mmio read to ensure that the GGTT writes
are flushed does not require us to do the forcewake dance, so avoid it
in the hope of reducing the frequency that we do keep the device forced
awake.

Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_gem.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 5e280e3bfd86..d468300e2f05 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3094,8 +3094,11 @@ i915_gem_object_flush_gtt_write_domain(struct 
drm_i915_gem_object *obj)
         * system agents we cannot reproduce this behaviour).
         */
        wmb();
-       if (INTEL_GEN(dev_priv) >= 6 && !HAS_LLC(dev_priv))
-               POSTING_READ(RING_ACTHD(dev_priv->engine[RCS]->mmio_base));
+       if (INTEL_GEN(dev_priv) >= 6 && !HAS_LLC(dev_priv)) {
+               spin_lock_irq(&dev_priv->uncore.lock);
+               POSTING_READ_FW(RING_ACTHD(dev_priv->engine[RCS]->mmio_base));
+               spin_unlock_irq(&dev_priv->uncore.lock);
+       }
 
        intel_fb_obj_flush(obj, write_origin(obj, I915_GEM_DOMAIN_GTT));
 
-- 
2.11.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to