All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl
@ 2017-11-11 10:03 Chris Wilson
  2017-11-11 10:21 ` ✓ Fi.CI.BAT: success for " Patchwork
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Chris Wilson @ 2017-11-11 10:03 UTC (permalink / raw)
  To: intel-gfx; +Cc: Rodrigo Vivi, Mika Kuoppala

gem_workarounds reports that the SLICE_UNIT_LEVEL_CLKGATE write isn't
sticking. Commit 0a60797a0efb ("drm/i915: Implement
ReadHitWriteOnlyDisable.") presumes that SLICE_UNIT_LEVEL_CLKGATE is a
masked register in the context image, but commit 90007bca6162
("drm/i915/cnl: Introduce initial Cannonlake Workarounds.") lists it as
an ordering unmasked register. The masked write will be losing the
default settings if we trust the original commit. That gem_workarounds
reports the value is lost entirely is more worrying though -- but it
clearly suggests that it is not a masked register in the context image,
so unify both w/a to use the original rmw.

Fixes: 0a60797a0efb ("drm/i915: Implement ReadHitWriteOnlyDisable.")
References: 90007bca6162 ("drm/i915/cnl: Introduce initial Cannonlake Workarounds.")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Rafael Antognolli <rafael.antognolli@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Oscar Mateo <oscar.mateo@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_engine_cs.c | 3 ---
 drivers/gpu/drm/i915/intel_pm.c        | 8 +++++---
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c
index 23694916662f..125e4d90c5f7 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -1324,9 +1324,6 @@ static int cnl_init_workarounds(struct intel_engine_cs *engine)
 	WA_SET_FIELD_MASKED(GEN8_CS_CHICKEN1, GEN9_PREEMPT_GPGPU_LEVEL_MASK,
 			    GEN9_PREEMPT_GPGPU_COMMAND_LEVEL);
 
-	/* ReadHitWriteOnlyDisable: cnl */
-	WA_SET_BIT_MASKED(SLICE_UNIT_LEVEL_CLKGATE, RCCUNIT_CLKGATE_DIS);
-
 	/* WaEnablePreemptionGranularityControlByUMD:cnl */
 	I915_WRITE(GEN7_FF_SLICE_CS_CHICKEN1,
 		   _MASKED_BIT_ENABLE(GEN9_FFSC_PERCTX_PREEMPT_CTRL));
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index c1a56809f143..6dee6b15f726 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -8474,11 +8474,13 @@ static void cnl_init_clock_gating(struct drm_i915_private *dev_priv)
 	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
 		   DISP_FBC_MEMORY_WAKE);
 
+	val = I915_READ(SLICE_UNIT_LEVEL_CLKGATE);
+	/* ReadHitWriteOnlyDisable:cnl */
+	val |= RCCUNIT_CLKGATE_DIS;
 	/* WaSarbUnitClockGatingDisable:cnl (pre-prod) */
 	if (IS_CNL_REVID(dev_priv, CNL_REVID_A0, CNL_REVID_B0))
-		I915_WRITE(SLICE_UNIT_LEVEL_CLKGATE,
-			   I915_READ(SLICE_UNIT_LEVEL_CLKGATE) |
-			   SARBUNIT_CLKGATE_DIS);
+		val |= SARBUNIT_CLKGATE_DIS;
+	I915_WRITE(SLICE_UNIT_LEVEL_CLKGATE, val);
 
 	/* Display WA #1133: WaFbcSkipSegments:cnl */
 	val = I915_READ(ILK_DPFC_CHICKEN);
-- 
2.15.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl
  2017-11-11 10:03 [PATCH] drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl Chris Wilson
@ 2017-11-11 10:21 ` Patchwork
  2017-11-11 11:12 ` ✓ Fi.CI.IGT: " Patchwork
  2017-11-13 16:20 ` [PATCH] " Rafael Antognolli
  2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2017-11-11 10:21 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl
URL   : https://patchwork.freedesktop.org/series/33659/
State : success

== Summary ==

Series 33659v1 drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl
https://patchwork.freedesktop.org/api/1.0/series/33659/revisions/1/mbox/

Test kms_busy:
        Subgroup basic-flip-b:
                fail       -> PASS       (fi-gdg-551) fdo#102654
Test kms_cursor_legacy:
        Subgroup basic-busy-flip-before-cursor-legacy:
                fail       -> PASS       (fi-gdg-551) fdo#102618
Test kms_pipe_crc_basic:
        Subgroup suspend-read-crc-pipe-c:
                incomplete -> PASS       (fi-kbl-7560u) fdo#102846

fdo#102654 https://bugs.freedesktop.org/show_bug.cgi?id=102654
fdo#102618 https://bugs.freedesktop.org/show_bug.cgi?id=102618
fdo#102846 https://bugs.freedesktop.org/show_bug.cgi?id=102846

fi-bdw-5557u     total:289  pass:268  dwarn:0   dfail:0   fail:0   skip:21  time:446s
fi-blb-e6850     total:289  pass:223  dwarn:1   dfail:0   fail:0   skip:65  time:379s
fi-bsw-n3050     total:289  pass:243  dwarn:0   dfail:0   fail:0   skip:46  time:539s
fi-bwr-2160      total:289  pass:183  dwarn:0   dfail:0   fail:0   skip:106 time:274s
fi-bxt-dsi       total:289  pass:259  dwarn:0   dfail:0   fail:0   skip:30  time:505s
fi-bxt-j4205     total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  time:506s
fi-byt-j1900     total:289  pass:254  dwarn:0   dfail:0   fail:0   skip:35  time:495s
fi-byt-n2820     total:289  pass:250  dwarn:0   dfail:0   fail:0   skip:39  time:485s
fi-elk-e7500     total:289  pass:229  dwarn:0   dfail:0   fail:0   skip:60  time:429s
fi-gdg-551       total:289  pass:178  dwarn:1   dfail:0   fail:1   skip:109 time:268s
fi-glk-1         total:289  pass:261  dwarn:0   dfail:0   fail:0   skip:28  time:542s
fi-hsw-4770      total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  time:429s
fi-hsw-4770r     total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  time:437s
fi-ilk-650       total:289  pass:228  dwarn:0   dfail:0   fail:0   skip:61  time:426s
fi-ivb-3520m     total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  time:477s
fi-ivb-3770      total:289  pass:260  dwarn:0   dfail:0   fail:0   skip:29  time:463s
fi-kbl-7500u     total:289  pass:264  dwarn:1   dfail:0   fail:0   skip:24  time:483s
fi-kbl-7560u     total:289  pass:270  dwarn:0   dfail:0   fail:0   skip:19  time:523s
fi-kbl-7567u     total:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  time:476s
fi-kbl-r         total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  time:534s
fi-pnv-d510      total:289  pass:222  dwarn:1   dfail:0   fail:0   skip:66  time:565s
fi-skl-6260u     total:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  time:451s
fi-skl-6600u     total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  time:542s
fi-skl-6700hq    total:289  pass:263  dwarn:0   dfail:0   fail:0   skip:26  time:563s
fi-skl-6700k     total:289  pass:265  dwarn:0   dfail:0   fail:0   skip:24  time:516s
fi-skl-6770hq    total:289  pass:269  dwarn:0   dfail:0   fail:0   skip:20  time:497s
fi-snb-2520m     total:289  pass:250  dwarn:0   dfail:0   fail:0   skip:39  time:553s
fi-snb-2600      total:289  pass:249  dwarn:0   dfail:0   fail:0   skip:40  time:427s
Blacklisted hosts:
fi-cfl-s         total:289  pass:254  dwarn:3   dfail:0   fail:0   skip:32  time:535s
fi-cnl-y         total:289  pass:262  dwarn:0   dfail:0   fail:0   skip:27  time:564s
fi-skl-gvtdvm failed to connect after reboot

5718ed25274469e3b860f53debab11eb86588961 drm-tip: 2017y-11m-11d-00h-46m-17s UTC integration manifest
2bb4ee349e21 drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7080/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* ✓ Fi.CI.IGT: success for drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl
  2017-11-11 10:03 [PATCH] drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl Chris Wilson
  2017-11-11 10:21 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2017-11-11 11:12 ` Patchwork
  2017-11-13 16:20 ` [PATCH] " Rafael Antognolli
  2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2017-11-11 11:12 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl
URL   : https://patchwork.freedesktop.org/series/33659/
State : success

== Summary ==

Test kms_setmode:
        Subgroup basic:
                pass       -> FAIL       (shard-hsw) fdo#99912
Test drv_module_reload:
        Subgroup basic-reload:
                pass       -> DMESG-WARN (shard-hsw) fdo#102707

fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
fdo#102707 https://bugs.freedesktop.org/show_bug.cgi?id=102707

shard-hsw        total:2584 pass:1470 dwarn:4   dfail:2   fail:9   skip:1099 time:9445s
Blacklisted hosts:
shard-apl        total:2584 pass:1623 dwarn:2   dfail:1   fail:22  skip:936 time:13158s
shard-kbl        total:2505 pass:1650 dwarn:14  dfail:2   fail:24  skip:813 time:10647s
shard-snb        total:2584 pass:1209 dwarn:2   dfail:2   fail:12  skip:1359 time:7826s

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7080/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl
  2017-11-11 10:03 [PATCH] drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl Chris Wilson
  2017-11-11 10:21 ` ✓ Fi.CI.BAT: success for " Patchwork
  2017-11-11 11:12 ` ✓ Fi.CI.IGT: " Patchwork
@ 2017-11-13 16:20 ` Rafael Antognolli
  2017-11-14 15:34   ` Chris Wilson
  2 siblings, 1 reply; 5+ messages in thread
From: Rafael Antognolli @ 2017-11-13 16:20 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx, Rodrigo Vivi, Mika Kuoppala

On Sat, Nov 11, 2017 at 10:03:36AM +0000, Chris Wilson wrote:
> gem_workarounds reports that the SLICE_UNIT_LEVEL_CLKGATE write isn't
> sticking. Commit 0a60797a0efb ("drm/i915: Implement
> ReadHitWriteOnlyDisable.") presumes that SLICE_UNIT_LEVEL_CLKGATE is a
> masked register in the context image, but commit 90007bca6162
> ("drm/i915/cnl: Introduce initial Cannonlake Workarounds.") lists it as
> an ordering unmasked register. The masked write will be losing the
> default settings if we trust the original commit. That gem_workarounds
> reports the value is lost entirely is more worrying though -- but it
> clearly suggests that it is not a masked register in the context image,
> so unify both w/a to use the original rmw.

Thanks for fixing this.

Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>

> Fixes: 0a60797a0efb ("drm/i915: Implement ReadHitWriteOnlyDisable.")
> References: 90007bca6162 ("drm/i915/cnl: Introduce initial Cannonlake Workarounds.")
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Rafael Antognolli <rafael.antognolli@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Oscar Mateo <oscar.mateo@intel.com>
> Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_engine_cs.c | 3 ---
>  drivers/gpu/drm/i915/intel_pm.c        | 8 +++++---
>  2 files changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c
> index 23694916662f..125e4d90c5f7 100644
> --- a/drivers/gpu/drm/i915/intel_engine_cs.c
> +++ b/drivers/gpu/drm/i915/intel_engine_cs.c
> @@ -1324,9 +1324,6 @@ static int cnl_init_workarounds(struct intel_engine_cs *engine)
>  	WA_SET_FIELD_MASKED(GEN8_CS_CHICKEN1, GEN9_PREEMPT_GPGPU_LEVEL_MASK,
>  			    GEN9_PREEMPT_GPGPU_COMMAND_LEVEL);
>  
> -	/* ReadHitWriteOnlyDisable: cnl */
> -	WA_SET_BIT_MASKED(SLICE_UNIT_LEVEL_CLKGATE, RCCUNIT_CLKGATE_DIS);
> -
>  	/* WaEnablePreemptionGranularityControlByUMD:cnl */
>  	I915_WRITE(GEN7_FF_SLICE_CS_CHICKEN1,
>  		   _MASKED_BIT_ENABLE(GEN9_FFSC_PERCTX_PREEMPT_CTRL));
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index c1a56809f143..6dee6b15f726 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -8474,11 +8474,13 @@ static void cnl_init_clock_gating(struct drm_i915_private *dev_priv)
>  	I915_WRITE(DISP_ARB_CTL, I915_READ(DISP_ARB_CTL) |
>  		   DISP_FBC_MEMORY_WAKE);
>  
> +	val = I915_READ(SLICE_UNIT_LEVEL_CLKGATE);
> +	/* ReadHitWriteOnlyDisable:cnl */
> +	val |= RCCUNIT_CLKGATE_DIS;
>  	/* WaSarbUnitClockGatingDisable:cnl (pre-prod) */
>  	if (IS_CNL_REVID(dev_priv, CNL_REVID_A0, CNL_REVID_B0))
> -		I915_WRITE(SLICE_UNIT_LEVEL_CLKGATE,
> -			   I915_READ(SLICE_UNIT_LEVEL_CLKGATE) |
> -			   SARBUNIT_CLKGATE_DIS);
> +		val |= SARBUNIT_CLKGATE_DIS;
> +	I915_WRITE(SLICE_UNIT_LEVEL_CLKGATE, val);
>  
>  	/* Display WA #1133: WaFbcSkipSegments:cnl */
>  	val = I915_READ(ILK_DPFC_CHICKEN);
> -- 
> 2.15.0
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl
  2017-11-13 16:20 ` [PATCH] " Rafael Antognolli
@ 2017-11-14 15:34   ` Chris Wilson
  0 siblings, 0 replies; 5+ messages in thread
From: Chris Wilson @ 2017-11-14 15:34 UTC (permalink / raw)
  To: Rafael Antognolli; +Cc: intel-gfx, Rodrigo Vivi, Mika Kuoppala

Quoting Rafael Antognolli (2017-11-13 16:20:39)
> On Sat, Nov 11, 2017 at 10:03:36AM +0000, Chris Wilson wrote:
> > gem_workarounds reports that the SLICE_UNIT_LEVEL_CLKGATE write isn't
> > sticking. Commit 0a60797a0efb ("drm/i915: Implement
> > ReadHitWriteOnlyDisable.") presumes that SLICE_UNIT_LEVEL_CLKGATE is a
> > masked register in the context image, but commit 90007bca6162
> > ("drm/i915/cnl: Introduce initial Cannonlake Workarounds.") lists it as
> > an ordering unmasked register. The masked write will be losing the
> > default settings if we trust the original commit. That gem_workarounds
> > reports the value is lost entirely is more worrying though -- but it
> > clearly suggests that it is not a masked register in the context image,
> > so unify both w/a to use the original rmw.
> 
> Thanks for fixing this.
> 
> Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>

So I am not 100% confident that the register write is sticking, but
applying the two w/a together does at least mean one isn't overwriting
the other!

We shall revisit this when we have the generic w/a checker. Thanks for
the review, pushed with bugzilla tag.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-11-14 15:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-11 10:03 [PATCH] drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl Chris Wilson
2017-11-11 10:21 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-11-11 11:12 ` ✓ Fi.CI.IGT: " Patchwork
2017-11-13 16:20 ` [PATCH] " Rafael Antognolli
2017-11-14 15:34   ` Chris Wilson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.