Commit f7043102 authored by Lionel Landwerlin's avatar Lionel Landwerlin Committed by Chris Wilson

drm/i915: add extra slice common debug registers

Could be helpful for debugging purposes.
Signed-off-by: default avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20200129181638.1528150-1-lionel.g.landwerlin@intel.com
parent f1042cc8
...@@ -999,6 +999,12 @@ void intel_engine_get_instdone(const struct intel_engine_cs *engine, ...@@ -999,6 +999,12 @@ void intel_engine_get_instdone(const struct intel_engine_cs *engine,
instdone->slice_common = instdone->slice_common =
intel_uncore_read(uncore, GEN7_SC_INSTDONE); intel_uncore_read(uncore, GEN7_SC_INSTDONE);
if (INTEL_GEN(i915) >= 12) {
instdone->slice_common_extra[0] =
intel_uncore_read(uncore, GEN12_SC_INSTDONE_EXTRA);
instdone->slice_common_extra[1] =
intel_uncore_read(uncore, GEN12_SC_INSTDONE_EXTRA2);
}
for_each_instdone_slice_subslice(i915, sseu, slice, subslice) { for_each_instdone_slice_subslice(i915, sseu, slice, subslice) {
instdone->sampler[slice][subslice] = instdone->sampler[slice][subslice] =
read_subslice_reg(engine, slice, subslice, read_subslice_reg(engine, slice, subslice,
......
...@@ -75,6 +75,7 @@ struct intel_instdone { ...@@ -75,6 +75,7 @@ struct intel_instdone {
u32 instdone; u32 instdone;
/* The following exist only in the RCS engine */ /* The following exist only in the RCS engine */
u32 slice_common; u32 slice_common;
u32 slice_common_extra[2];
u32 sampler[I915_MAX_SLICES][I915_MAX_SUBSLICES]; u32 sampler[I915_MAX_SLICES][I915_MAX_SUBSLICES];
u32 row[I915_MAX_SLICES][I915_MAX_SUBSLICES]; u32 row[I915_MAX_SLICES][I915_MAX_SUBSLICES];
}; };
......
...@@ -450,6 +450,14 @@ static void error_print_instdone(struct drm_i915_error_state_buf *m, ...@@ -450,6 +450,14 @@ static void error_print_instdone(struct drm_i915_error_state_buf *m,
err_printf(m, " ROW_INSTDONE[%d][%d]: 0x%08x\n", err_printf(m, " ROW_INSTDONE[%d][%d]: 0x%08x\n",
slice, subslice, slice, subslice,
ee->instdone.row[slice][subslice]); ee->instdone.row[slice][subslice]);
if (INTEL_GEN(m->i915) < 12)
return;
err_printf(m, " SC_INSTDONE_EXTRA: 0x%08x\n",
ee->instdone.slice_common_extra[0]);
err_printf(m, " SC_INSTDONE_EXTRA2: 0x%08x\n",
ee->instdone.slice_common_extra[1]);
} }
static void error_print_request(struct drm_i915_error_state_buf *m, static void error_print_request(struct drm_i915_error_state_buf *m,
......
...@@ -2626,6 +2626,8 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg) ...@@ -2626,6 +2626,8 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
#define IPEIR_I965 _MMIO(0x2064) #define IPEIR_I965 _MMIO(0x2064)
#define IPEHR_I965 _MMIO(0x2068) #define IPEHR_I965 _MMIO(0x2068)
#define GEN7_SC_INSTDONE _MMIO(0x7100) #define GEN7_SC_INSTDONE _MMIO(0x7100)
#define GEN12_SC_INSTDONE_EXTRA _MMIO(0x7104)
#define GEN12_SC_INSTDONE_EXTRA2 _MMIO(0x7108)
#define GEN7_SAMPLER_INSTDONE _MMIO(0xe160) #define GEN7_SAMPLER_INSTDONE _MMIO(0xe160)
#define GEN7_ROW_INSTDONE _MMIO(0xe164) #define GEN7_ROW_INSTDONE _MMIO(0xe164)
#define GEN8_MCR_SELECTOR _MMIO(0xfdc) #define GEN8_MCR_SELECTOR _MMIO(0xfdc)
......
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