drm/i915: Show FBC worker status in debugfs
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 20 Dec 2017 20:58:48 +0000 (20:58 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 21 Dec 2017 17:35:35 +0000 (17:35 +0000)
Include the pending update from the FBC worker in i915_fbc_status.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171220205848.8510-1-chris@chris-wilson.co.uk
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
drivers/gpu/drm/i915/i915_debugfs.c

index c4780f0..3affcaa 100644 (file)
@@ -1581,18 +1581,23 @@ static int i915_frontbuffer_tracking(struct seq_file *m, void *unused)
 static int i915_fbc_status(struct seq_file *m, void *unused)
 {
        struct drm_i915_private *dev_priv = node_to_i915(m->private);
+       struct intel_fbc *fbc = &dev_priv->fbc;
 
        if (!HAS_FBC(dev_priv))
                return -ENODEV;
 
        intel_runtime_pm_get(dev_priv);
-       mutex_lock(&dev_priv->fbc.lock);
+       mutex_lock(&fbc->lock);
 
        if (intel_fbc_is_active(dev_priv))
                seq_puts(m, "FBC enabled\n");
        else
-               seq_printf(m, "FBC disabled: %s\n",
-                          dev_priv->fbc.no_fbc_reason);
+               seq_printf(m, "FBC disabled: %s\n", fbc->no_fbc_reason);
+
+       if (fbc->work.scheduled)
+               seq_printf(m, "FBC worker scheduled on vblank %u, now %llu\n",
+                          fbc->work.scheduled_vblank,
+                          drm_crtc_vblank_count(&fbc->crtc->base));
 
        if (intel_fbc_is_active(dev_priv)) {
                u32 mask;
@@ -1612,7 +1617,7 @@ static int i915_fbc_status(struct seq_file *m, void *unused)
                seq_printf(m, "Compressing: %s\n", yesno(mask));
        }
 
-       mutex_unlock(&dev_priv->fbc.lock);
+       mutex_unlock(&fbc->lock);
        intel_runtime_pm_put(dev_priv);
 
        return 0;