drm/xe/adlp: Add revid => step mapping
authorMatt Roper <matthew.d.roper@intel.com>
Wed, 19 Apr 2023 21:37:02 +0000 (14:37 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 19 Dec 2023 23:33:50 +0000 (18:33 -0500)
Setup the mapping from PCI revid to IP stepping for ADL-P (and its RPL-P
subplatform) in case this information becomes important for implementing
workarounds.

Bspec: 55376
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://lore.kernel.org/r/20230419213703.3993439-1-matthew.d.roper@intel.com
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_step.c

index ee927dfd3eb37bb19bab70982e3228ff89444782..bcdb4601c2f6f6f2597f9f398ed955b6a02fbf62 100644 (file)
@@ -60,6 +60,17 @@ static const struct xe_step_info adls_revids[] = {
        [0xC] = { COMMON_GT_MEDIA_STEP(D0), .display = STEP_C0 },
 };
 
+static const struct xe_step_info adlp_revids[] = {
+       [0x0] = { COMMON_GT_MEDIA_STEP(A0), .display = STEP_A0 },
+       [0x4] = { COMMON_GT_MEDIA_STEP(B0), .display = STEP_B0 },
+       [0x8] = { COMMON_GT_MEDIA_STEP(C0), .display = STEP_C0 },
+       [0xC] = { COMMON_GT_MEDIA_STEP(C0), .display = STEP_D0 },
+};
+
+static const struct xe_step_info adlp_rpl_revids[] = {
+       [0x4] = { COMMON_GT_MEDIA_STEP(C0), .display = STEP_E0 },
+};
+
 static const struct xe_step_info dg2_g10_revid_step_tbl[] = {
        [0x0] = { COMMON_GT_MEDIA_STEP(A0), .display = STEP_A0 },
        [0x1] = { COMMON_GT_MEDIA_STEP(A1), .display = STEP_A0 },
@@ -118,6 +129,12 @@ struct xe_step_info xe_step_get(struct xe_device *xe)
        } else if (xe->info.subplatform == XE_SUBPLATFORM_DG2_G12) {
                revids = dg2_g12_revid_step_tbl;
                size = ARRAY_SIZE(dg2_g12_revid_step_tbl);
+       } else if (xe->info.subplatform == XE_SUBPLATFORM_ADLP_RPLU) {
+               revids = adlp_rpl_revids;
+               size = ARRAY_SIZE(adlp_rpl_revids);
+       } else if (xe->info.platform == XE_ALDERLAKE_P) {
+               revids = adlp_revids;
+               size = ARRAY_SIZE(adlp_revids);
        } else if (xe->info.platform == XE_ALDERLAKE_S) {
                revids = adls_revids;
                size = ARRAY_SIZE(adls_revids);