Commit ae4b0eac authored by Akeem G Abodunrin's avatar Akeem G Abodunrin Committed by Matt Roper

drm/i915/dg2: Add new LRI reg offsets

New LRI register offsets were introduced for DG2, this patch adds
those extra registers, and create new register table for setting offsets
to compare with HW generated context image - especially for gt_lrc test.
Also updates general purpose register with scratch offset for DG2, in
order to use it for live_lrc_fixed selftest.

Cc: Chris P Wilson <chris.p.wilson@intel.com>
Cc: Prathap Kumar Valsan <prathap.kumar.valsan@intel.com>
Signed-off-by: default avatarAkeem G Abodunrin <akeem.g.abodunrin@intel.com>
Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
Reviewed-by: default avatarCaz Yokoyama <caz.yokoyama@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210805163647.801064-8-matthew.d.roper@intel.com
parent 5e076529
...@@ -226,6 +226,40 @@ static const u8 gen12_xcs_offsets[] = { ...@@ -226,6 +226,40 @@ static const u8 gen12_xcs_offsets[] = {
END END
}; };
static const u8 dg2_xcs_offsets[] = {
NOP(1),
LRI(15, POSTED),
REG16(0x244),
REG(0x034),
REG(0x030),
REG(0x038),
REG(0x03c),
REG(0x168),
REG(0x140),
REG(0x110),
REG(0x1c0),
REG(0x1c4),
REG(0x1c8),
REG(0x180),
REG16(0x2b4),
REG(0x120),
REG(0x124),
NOP(1),
LRI(9, POSTED),
REG16(0x3a8),
REG16(0x28c),
REG16(0x288),
REG16(0x284),
REG16(0x280),
REG16(0x27c),
REG16(0x278),
REG16(0x274),
REG16(0x270),
END
};
static const u8 gen8_rcs_offsets[] = { static const u8 gen8_rcs_offsets[] = {
NOP(1), NOP(1),
LRI(14, POSTED), LRI(14, POSTED),
...@@ -525,6 +559,49 @@ static const u8 xehp_rcs_offsets[] = { ...@@ -525,6 +559,49 @@ static const u8 xehp_rcs_offsets[] = {
END END
}; };
static const u8 dg2_rcs_offsets[] = {
NOP(1),
LRI(15, POSTED),
REG16(0x244),
REG(0x034),
REG(0x030),
REG(0x038),
REG(0x03c),
REG(0x168),
REG(0x140),
REG(0x110),
REG(0x1c0),
REG(0x1c4),
REG(0x1c8),
REG(0x180),
REG16(0x2b4),
REG(0x120),
REG(0x124),
NOP(1),
LRI(9, POSTED),
REG16(0x3a8),
REG16(0x28c),
REG16(0x288),
REG16(0x284),
REG16(0x280),
REG16(0x27c),
REG16(0x278),
REG16(0x274),
REG16(0x270),
LRI(3, POSTED),
REG(0x1b0),
REG16(0x5a8),
REG16(0x5ac),
NOP(6),
LRI(1, 0),
REG(0x0c8),
END
};
#undef END #undef END
#undef REG16 #undef REG16
#undef REG #undef REG
...@@ -543,7 +620,9 @@ static const u8 *reg_offsets(const struct intel_engine_cs *engine) ...@@ -543,7 +620,9 @@ static const u8 *reg_offsets(const struct intel_engine_cs *engine)
!intel_engine_has_relative_mmio(engine)); !intel_engine_has_relative_mmio(engine));
if (engine->class == RENDER_CLASS) { if (engine->class == RENDER_CLASS) {
if (GRAPHICS_VER_FULL(engine->i915) >= IP_VER(12, 50)) if (GRAPHICS_VER_FULL(engine->i915) >= IP_VER(12, 55))
return dg2_rcs_offsets;
else if (GRAPHICS_VER_FULL(engine->i915) >= IP_VER(12, 50))
return xehp_rcs_offsets; return xehp_rcs_offsets;
else if (GRAPHICS_VER(engine->i915) >= 12) else if (GRAPHICS_VER(engine->i915) >= 12)
return gen12_rcs_offsets; return gen12_rcs_offsets;
...@@ -554,7 +633,9 @@ static const u8 *reg_offsets(const struct intel_engine_cs *engine) ...@@ -554,7 +633,9 @@ static const u8 *reg_offsets(const struct intel_engine_cs *engine)
else else
return gen8_rcs_offsets; return gen8_rcs_offsets;
} else { } else {
if (GRAPHICS_VER(engine->i915) >= 12) if (GRAPHICS_VER_FULL(engine->i915) >= IP_VER(12, 55))
return dg2_xcs_offsets;
else if (GRAPHICS_VER(engine->i915) >= 12)
return gen12_xcs_offsets; return gen12_xcs_offsets;
else if (GRAPHICS_VER(engine->i915) >= 9) else if (GRAPHICS_VER(engine->i915) >= 9)
return gen9_xcs_offsets; return gen9_xcs_offsets;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment