All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915/gen9: Set value of Indirect Context Offset based on gen version
@ 2016-02-19 14:05 Michel Thierry
  2016-02-19 14:25 ` Chris Wilson
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Michel Thierry @ 2016-02-19 14:05 UTC (permalink / raw)
  To: intel-gfx

The cache line offset for the Indirect CS context (0x21C8) varies from gen
to gen.

Cc: Arun Siluvery <arun.siluvery@linux.intel.com>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
---
 drivers/gpu/drm/i915/intel_lrc.c | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 5c0bf02..e707937 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -226,7 +226,8 @@ enum {
 	FAULT_AND_CONTINUE /* Unsupported */
 };
 #define GEN8_CTX_ID_SHIFT 32
-#define CTX_RCS_INDIRECT_CTX_OFFSET_DEFAULT  0x17
+#define GEN8_CTX_RCS_INDIRECT_CTX_OFFSET_DEFAULT	0x17
+#define GEN9_CTX_RCS_INDIRECT_CTX_OFFSET_DEFAULT	0x26
 
 static int intel_lr_context_pin(struct drm_i915_gem_request *rq);
 static void lrc_setup_hardware_status_page(struct intel_engine_cs *ring,
@@ -2330,13 +2331,29 @@ populate_lr_context(struct intel_context *ctx, struct drm_i915_gem_object *ctx_o
 		if (ring->wa_ctx.obj) {
 			struct i915_ctx_workarounds *wa_ctx = &ring->wa_ctx;
 			uint32_t ggtt_offset = i915_gem_obj_ggtt_offset(wa_ctx->obj);
+			uint32_t indirect_ctx_offset;
 
 			reg_state[CTX_RCS_INDIRECT_CTX+1] =
 				(ggtt_offset + wa_ctx->indirect_ctx.offset * sizeof(uint32_t)) |
 				(wa_ctx->indirect_ctx.size / CACHELINE_DWORDS);
 
+			switch (INTEL_INFO(ring->dev)->gen) {
+				default:
+					DRM_ERROR("Unknown indirect ctx offset for GEN%d\n",
+						  INTEL_INFO(ring->dev)->gen);
+					/* fall through */
+				case 9:
+					indirect_ctx_offset =
+						GEN9_CTX_RCS_INDIRECT_CTX_OFFSET_DEFAULT;
+					break;
+				case 8:
+					indirect_ctx_offset =
+						GEN8_CTX_RCS_INDIRECT_CTX_OFFSET_DEFAULT;
+					break;
+			}
+
 			reg_state[CTX_RCS_INDIRECT_CTX_OFFSET+1] =
-				CTX_RCS_INDIRECT_CTX_OFFSET_DEFAULT << 6;
+				indirect_ctx_offset << 6;
 
 			reg_state[CTX_BB_PER_CTX_PTR+1] =
 				(ggtt_offset + wa_ctx->per_ctx.offset * sizeof(uint32_t)) |
-- 
2.7.1

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

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

end of thread, other threads:[~2016-02-22 10:14 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-19 14:05 [PATCH] drm/i915/gen9: Set value of Indirect Context Offset based on gen version Michel Thierry
2016-02-19 14:25 ` Chris Wilson
2016-02-19 14:58 ` [PATCH v2] " Michel Thierry
2016-02-19 15:19   ` Arun Siluvery
2016-02-19 16:42 ` ✗ Fi.CI.BAT: failure for drm/i915/gen9: Set value of Indirect Context Offset based on gen version (rev2) Patchwork
2016-02-22 10:14 ` [PATCH v3] drm/i915/gen9: Set value of Indirect Context Offset based on gen version Michel Thierry

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.