drm/i915: Detect and clear unclaimed access on resume
authorMika Kuoppala <mika.kuoppala@linux.intel.com>
Tue, 15 Dec 2015 14:25:08 +0000 (16:25 +0200)
committerMika Kuoppala <mika.kuoppala@intel.com>
Fri, 8 Jan 2016 11:13:45 +0000 (13:13 +0200)
If something, the usual suspect being bios, access hw
behind our back, don't let it slide into situation where
normal register access will detect this and spit out
a warn on into dmesg. On some bdw bioses this happens
during igt/bat run always and as there is not much we can
do about it, its better just to detect and flush this
explicitly on resume and only print a debug message.

v2: use DRM_DEBUG_DRIVER (Chris)
v3: s/access/mmio, s/prior/prior to, s/dev/dev_priv

Testcase: igt/pm_rpm/basic-rte
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Paulo Zanoni <przanoni@gmail.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
[Mika: fixed merge conflict]
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1450189512-30360-3-git-send-email-mika.kuoppala@intel.com
drivers/gpu/drm/i915/i915_drv.c

index 3ac616d7363bafcc4197aa126c509932d15fb299..288fec7691dc3694cfd8ad6a7a655213e3a846d6 100644 (file)
@@ -1501,6 +1501,10 @@ static int intel_runtime_suspend(struct device *device)
 
        enable_rpm_wakeref_asserts(dev_priv);
        WARN_ON_ONCE(atomic_read(&dev_priv->pm.wakeref_count));
+
+       if (intel_uncore_unclaimed_mmio(dev_priv))
+               DRM_ERROR("Unclaimed access detected prior to suspending\n");
+
        dev_priv->pm.suspended = true;
 
        /*
@@ -1549,6 +1553,8 @@ static int intel_runtime_resume(struct device *device)
 
        intel_opregion_notify_adapter(dev, PCI_D0);
        dev_priv->pm.suspended = false;
+       if (intel_uncore_unclaimed_mmio(dev_priv))
+               DRM_DEBUG_DRIVER("Unclaimed access during suspend, bios?\n");
 
        intel_guc_resume(dev);