[Intel-gfx] [RFC 1/2] drm/i915/dmc: Add soc stepping to intel_step
Anusha Srivatsa
anusha.srivatsa at intel.com
Tue Jun 29 23:20:48 UTC 2021
DMC firmware looks for SOC stepping to load specific firmware.
While we maintained a separate lookup table, lets consolidate
SOC steppings with gt and display steppings.
Cc: Lucas De Marchi <lucas.demarchi at intel.com>
Signed-off-by: Anusha Srivatsa <anusha.srivatsa at intel.com>
---
drivers/gpu/drm/i915/intel_step.c | 46 +++++++++++++++----------------
drivers/gpu/drm/i915/intel_step.h | 13 +++++++++
2 files changed, 36 insertions(+), 23 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_step.c b/drivers/gpu/drm/i915/intel_step.c
index ba9479a67521..bc139c7e3e37 100644
--- a/drivers/gpu/drm/i915/intel_step.c
+++ b/drivers/gpu/drm/i915/intel_step.c
@@ -16,42 +16,42 @@
/* FIXME: what about REVID_E0 */
static const struct intel_step_info kbl_revids[] = {
- [0] = { .gt_step = STEP_A0, .display_step = STEP_A0 },
- [1] = { .gt_step = STEP_B0, .display_step = STEP_B0 },
- [2] = { .gt_step = STEP_C0, .display_step = STEP_B0 },
- [3] = { .gt_step = STEP_D0, .display_step = STEP_B0 },
- [4] = { .gt_step = STEP_F0, .display_step = STEP_C0 },
- [5] = { .gt_step = STEP_C0, .display_step = STEP_B1 },
- [6] = { .gt_step = STEP_D1, .display_step = STEP_B1 },
- [7] = { .gt_step = STEP_G0, .display_step = STEP_C0 },
+ [0] = { .gt_step = STEP_A0, .display_step = STEP_A0, .soc_step = STEP_G0 },
+ [1] = { .gt_step = STEP_B0, .display_step = STEP_B0, .soc_step = STEP_A0 },
+ [2] = { .gt_step = STEP_C0, .display_step = STEP_B0, .soc_step = STEP_H0 },
+ [3] = { .gt_step = STEP_D0, .display_step = STEP_B0, .soc_step = STEP_J0 },
+ [4] = { .gt_step = STEP_F0, .display_step = STEP_C0, .soc_step = STEP_B0 },
+ [5] = { .gt_step = STEP_C0, .display_step = STEP_B1, .soc_step = STEP_H5 },
+ [6] = { .gt_step = STEP_D1, .display_step = STEP_B1, .soc_step = STEP_J1 },
+ [7] = { .gt_step = STEP_G0, .display_step = STEP_C0, .soc_step = STEP_Y0 },
};
static const struct intel_step_info tgl_uy_revid_step_tbl[] = {
- [0] = { .gt_step = STEP_A0, .display_step = STEP_A0 },
- [1] = { .gt_step = STEP_B0, .display_step = STEP_C0 },
- [2] = { .gt_step = STEP_B1, .display_step = STEP_C0 },
- [3] = { .gt_step = STEP_C0, .display_step = STEP_D0 },
+ [0] = { .gt_step = STEP_A0, .display_step = STEP_A0, .soc_step = STEP_A0 },
+ [1] = { .gt_step = STEP_B0, .display_step = STEP_C0, .soc_step = STEP_B2 },
+ [2] = { .gt_step = STEP_B1, .display_step = STEP_C0, .soc_step = STEP_B10 },
+ [3] = { .gt_step = STEP_C0, .display_step = STEP_D0, .soc_step = STEP_C0 },
};
/* Same GT stepping between tgl_uy_revids and tgl_revids don't mean the same HW */
static const struct intel_step_info tgl_revid_step_tbl[] = {
- [0] = { .gt_step = STEP_A0, .display_step = STEP_B0 },
- [1] = { .gt_step = STEP_B0, .display_step = STEP_D0 },
+ [0] = { .gt_step = STEP_A0, .display_step = STEP_B0, .soc_step = STEP_P0 },
+ [1] = { .gt_step = STEP_B0, .display_step = STEP_D0, .soc_step = STEP_R0 },
};
static const struct intel_step_info adls_revid_step_tbl[] = {
- [0x0] = { .gt_step = STEP_A0, .display_step = STEP_A0 },
- [0x1] = { .gt_step = STEP_A0, .display_step = STEP_A2 },
- [0x4] = { .gt_step = STEP_B0, .display_step = STEP_B0 },
- [0x8] = { .gt_step = STEP_C0, .display_step = STEP_B0 },
- [0xC] = { .gt_step = STEP_D0, .display_step = STEP_C0 },
+ [0x0] = { .gt_step = STEP_A0, .display_step = STEP_A0, .soc_step = STEP_A0 },
+ [0x1] = { .gt_step = STEP_A0, .display_step = STEP_A2, .soc_step = STEP_A2 },
+ [0x4] = { .gt_step = STEP_B0, .display_step = STEP_B0, .soc_step = STEP_B0 },
+ [0x8] = { .gt_step = STEP_C0, .display_step = STEP_B0, .soc_step = STEP_G0 },
+ [0xC] = { .gt_step = STEP_D0, .display_step = STEP_C0, .soc_step = STEP_H0 },
};
static const struct intel_step_info adlp_revid_step_tbl[] = {
- [0x0] = { .gt_step = STEP_A0, .display_step = STEP_A0 },
- [0x4] = { .gt_step = STEP_B0, .display_step = STEP_B0 },
- [0x8] = { .gt_step = STEP_C0, .display_step = STEP_C0 },
- [0xC] = { .gt_step = STEP_C0, .display_step = STEP_D0 },
+ [0x0] = { .gt_step = STEP_A0, .display_step = STEP_A0, .soc_step = STEP_J0 },
+ [0x4] = { .gt_step = STEP_B0, .display_step = STEP_B0, .soc_step = STEP_Q0 },
+ [0x8] = { .gt_step = STEP_C0, .display_step = STEP_C0, .soc_step = STEP_K0 },
+ [0xC] = { .gt_step = STEP_C0, .display_step = STEP_D0, .soc_step = STEP_L0 },
};
void intel_step_init(struct drm_i915_private *i915)
diff --git a/drivers/gpu/drm/i915/intel_step.h b/drivers/gpu/drm/i915/intel_step.h
index 958a8bb5d677..2b0b0aaffe27 100644
--- a/drivers/gpu/drm/i915/intel_step.h
+++ b/drivers/gpu/drm/i915/intel_step.h
@@ -13,6 +13,7 @@ struct drm_i915_private;
struct intel_step_info {
u8 gt_step;
u8 display_step;
+ u8 soc_step;
};
/*
@@ -25,12 +26,24 @@ enum intel_step {
STEP_A2,
STEP_B0,
STEP_B1,
+ STEP_B2,
+ STEP_B10,
STEP_C0,
STEP_D0,
STEP_D1,
STEP_E0,
STEP_F0,
STEP_G0,
+ STEP_H0,
+ STEP_H5,
+ STEP_J0,
+ STEP_J1,
+ STEP_K0,
+ STEP_L0,
+ STEP_P0,
+ STEP_Q0,
+ STEP_R0,
+ STEP_Y0,
STEP_FUTURE,
STEP_FOREVER,
};
--
2.32.0
More information about the Intel-gfx
mailing list