All of lore.kernel.org
 help / color / mirror / Atom feed
From: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
To: intel-gfx@lists.freedesktop.org,
	Matt Roper <matthew.d.roper@intel.com>,
	daniele.ceraolospurio@intel.com, john.c.harrison@intel.com,
	vinay.belgaumkar@intel.com
Subject: [Intel-gfx] [PATCH 06/10] drm/i915: Add Wa_22011802037 force cs halt
Date: Wed, 13 Apr 2022 12:27:26 -0700	[thread overview]
Message-ID: <20220413192730.3608660-7-umesh.nerlige.ramappa@intel.com> (raw)
In-Reply-To: <20220413192730.3608660-1-umesh.nerlige.ramappa@intel.com>

From: Tilak Tangudu <tilak.tangudu@intel.com>

Prior to doing a reset, SW must ensure command streamer is stopped,
as a workaround, to eliminate a race condition in GPM flow.
Setting both the ring stop and prefetch disable bits, will cause the
command streamer to halt.

v2: 1. Removed duplicate code and added only prefetch disable -Chris Wilson

v3: 1. Applied wa for all gen12+ -Lahtinen Joonas/Vivi Rodrigo

v4: 1. Added description in comment
    2. Added WA prior to read barrier-Chris Wilson

v5: 1. Modified to disable prefetch and wait for idle ack -Chris Wilson

Signed-off-by: Tilak Tangudu <tilak.tangudu@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_engine_cs.c   | 9 +++++++++
 drivers/gpu/drm/i915/gt/intel_engine_regs.h | 1 +
 2 files changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
index 98b61ff13c95..14c6ddbbfde8 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
@@ -1280,6 +1280,15 @@ static int __intel_engine_stop_cs(struct intel_engine_cs *engine,
 	int err;
 
 	intel_uncore_write_fw(uncore, mode, _MASKED_BIT_ENABLE(STOP_RING));
+
+	/*
+	 * Wa_22011802037 : gen12, Prior to doing a reset, ensure CS is
+	 * stopped, set ring stop bit and prefetch disable bit to halt CS
+	 */
+	if (GRAPHICS_VER(engine->i915) == 12)
+		intel_uncore_write_fw(uncore, RING_MODE_GEN7(engine->mmio_base),
+				      _MASKED_BIT_ENABLE(GEN12_GFX_PREFETCH_DISABLE));
+
 	err = __intel_wait_for_register_fw(engine->uncore, mode,
 					   MODE_IDLE, MODE_IDLE,
 					   fast_timeout_us,
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_regs.h b/drivers/gpu/drm/i915/gt/intel_engine_regs.h
index 0bf8b45c9319..594a629cb28f 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_regs.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine_regs.h
@@ -181,6 +181,7 @@
 #define   GFX_SURFACE_FAULT_ENABLE		(1 << 12)
 #define   GFX_REPLAY_MODE			(1 << 11)
 #define   GFX_PSMI_GRANULARITY			(1 << 10)
+#define   GEN12_GFX_PREFETCH_DISABLE		REG_BIT(10)
 #define   GFX_PPGTT_ENABLE			(1 << 9)
 #define   GEN8_GFX_PPGTT_48B			(1 << 7)
 #define   GFX_FORWARD_VBLANK_MASK		(3 << 5)
-- 
2.35.1


  parent reply	other threads:[~2022-04-13 19:27 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-13 19:27 [Intel-gfx] [PATCH 00/10] Enable compute and related WAs for DG2 Umesh Nerlige Ramappa
2022-04-13 19:27 ` [Intel-gfx] [PATCH 01/10] drm/i915/guc: Update context registration to new GuC API Umesh Nerlige Ramappa
2022-04-13 19:27 ` [Intel-gfx] [PATCH 02/10] drm/i915/guc: Update scheduling policies " Umesh Nerlige Ramappa
2022-04-13 19:27 ` [Intel-gfx] [PATCH 03/10] drm/i915/guc: Update to GuC version 70.1.1 Umesh Nerlige Ramappa
2022-04-13 19:27 ` [Intel-gfx] [PATCH 04/10] drm/i915/xehp: Add compute engine ABI Umesh Nerlige Ramappa
2022-04-13 19:27 ` [Intel-gfx] [PATCH 05/10] drm/i915: Xe_HP SDV and DG2 have 4 CCS engines Umesh Nerlige Ramappa
2022-04-13 19:27 ` Umesh Nerlige Ramappa [this message]
2022-04-15  0:09   ` [Intel-gfx] [PATCH 06/10] drm/i915: Add Wa_22011802037 force cs halt John Harrison
2022-04-13 19:27 ` [Intel-gfx] [PATCH 07/10] drm/i915/guc: Enable GuC based workarounds for DG2 Umesh Nerlige Ramappa
2022-04-15 20:29   ` Ceraolo Spurio, Daniele
2022-04-13 19:27 ` [Intel-gfx] [PATCH 08/10] drm/i915/guc: Apply Wa_16011777198 Umesh Nerlige Ramappa
2022-04-15  0:15   ` John Harrison
2022-04-13 19:27 ` [Intel-gfx] [PATCH 09/10] drm/i915/dg2: Enable Wa_14014475959 - RCS / CCS context exit Umesh Nerlige Ramappa
2022-04-15  0:21   ` John Harrison
2022-04-15  4:11   ` Matthew Brost
2022-04-13 19:27 ` [Intel-gfx] [PATCH 10/10] drm/i915/dg2: Enable Wa_22012727170/Wa_22012727685 Umesh Nerlige Ramappa
2022-04-15  0:22   ` John Harrison
2022-04-15  0:28     ` Umesh Nerlige Ramappa
2022-04-14  1:40 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Enable compute and related WAs for DG2 Patchwork
2022-04-14  1:40 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-04-14  2:02 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220413192730.3608660-7-umesh.nerlige.ramappa@intel.com \
    --to=umesh.nerlige.ramappa@intel.com \
    --cc=daniele.ceraolospurio@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=john.c.harrison@intel.com \
    --cc=matthew.d.roper@intel.com \
    --cc=vinay.belgaumkar@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.