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@xxxxxxxxx> Signed-off-by: Anusha Srivatsa <anusha.srivatsa@xxxxxxxxx> --- 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 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx