drm/i915/snb+: Remove incorrect forcewake check in debugfs/i915_drpc_info
authorImre Deak <imre.deak@intel.com>
Thu, 8 Feb 2018 11:23:31 +0000 (13:23 +0200)
committerImre Deak <imre.deak@intel.com>
Fri, 9 Feb 2018 15:37:21 +0000 (17:37 +0200)
FORCEWAKE_ACK is depricated by BSpec at least starting from BDW,
referring to the multi-threaded version of it instead. Accessing
FORCEWAKE_ACK triggers an unclaimed register access error - at
least on GLK - see the Reference: below.

The correct registers to use would be FORCEWAKE_MT_ACK on IVB+ and
FORCEWAKE_ACK_RENDER_GEN9 on SKL+ like it's done elsewhere in the
driver.

The forcewake check itself is inconsistent and redundant, since there
could be other forcewake requesters besides the kernel (being the
multithreaded version of the register) and the kernel's per-domain
forcewake counters are shown anyway at the end of the file. So let's
just remove the check.

Suggested-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reference: https://bugs.freedesktop.org/show_bug.cgi?id=103337
Signed-off-by: Imre Deak <imre.deak@intel.com>
Tested-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20180208112331.12986-1-imre.deak@intel.com
drivers/gpu/drm/i915/i915_debugfs.c

index 2bdce9fea6717e4731e295e785f148b9f2a68827..eff5548ec093161523f07d745471c323cca6021e 100644 (file)
@@ -1461,19 +1461,6 @@ static int gen6_drpc_info(struct seq_file *m)
        struct drm_i915_private *dev_priv = node_to_i915(m->private);
        u32 gt_core_status, rcctl1, rc6vids = 0;
        u32 gen9_powergate_enable = 0, gen9_powergate_status = 0;
-       unsigned forcewake_count;
-       int count = 0;
-
-       forcewake_count = READ_ONCE(dev_priv->uncore.fw_domain[FW_DOMAIN_ID_RENDER].wake_count);
-       if (forcewake_count) {
-               seq_puts(m, "RC information inaccurate because somebody "
-                           "holds a forcewake reference \n");
-       } else {
-               /* NB: we cannot use forcewake, else we read the wrong values */
-               while (count++ < 50 && (I915_READ_NOTRACE(FORCEWAKE_ACK) & 1))
-                       udelay(10);
-               seq_printf(m, "RC information accurate: %s\n", yesno(count < 51));
-       }
 
        gt_core_status = I915_READ_FW(GEN6_GT_CORE_STATUS);
        trace_i915_reg_rw(false, GEN6_GT_CORE_STATUS, gt_core_status, 4, true);