[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