[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