[Intel-gfx] [PATCH] drm/i915/snb+: Remove incorrect forcewake check in debugfs/i915_drpc_info
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Thu Feb 8 16:02:31 UTC 2018
On 08/02/18 11:23, Imre Deak wrote:
> 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 at chris-wilson.co.uk>
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> Reference: https://bugs.freedesktop.org/show_bug.cgi?id=103337
> Signed-off-by: Imre Deak <imre.deak at intel.com>
Tested-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
On CNL.
> ---
> drivers/gpu/drm/i915/i915_debugfs.c | 13 -------------
> 1 file changed, 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 2bdce9fea671..eff5548ec093 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -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);
More information about the Intel-gfx
mailing list