Commit 61b2dc4b authored by Matt Roper's avatar Matt Roper

drm/i915/jsl_ehl: Use revid->stepping tables

Switch JSL/EHL to use a revid->stepping table as we're trying to do on
all platforms going forward.

v2:
 - Use COMMON_STEP().  (Anusha)

Bspec: 29153
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
Reviewed-by: default avatarAnusha Srivatsa <anusha.srivatsa@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210713193635.3390052-9-matthew.d.roper@intel.com
parent cc7a3393
...@@ -2674,7 +2674,7 @@ static bool ...@@ -2674,7 +2674,7 @@ static bool
ehl_combo_pll_div_frac_wa_needed(struct drm_i915_private *i915) ehl_combo_pll_div_frac_wa_needed(struct drm_i915_private *i915)
{ {
return ((IS_PLATFORM(i915, INTEL_ELKHARTLAKE) && return ((IS_PLATFORM(i915, INTEL_ELKHARTLAKE) &&
IS_JSL_EHL_REVID(i915, EHL_REVID_B0, REVID_FOREVER)) || IS_JSL_EHL_DISPLAY_STEP(i915, STEP_B0, STEP_FOREVER)) ||
IS_TIGERLAKE(i915)) && IS_TIGERLAKE(i915)) &&
i915->dpll.ref_clks.nssc == 38400; i915->dpll.ref_clks.nssc == 38400;
} }
......
...@@ -1078,7 +1078,7 @@ icl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal) ...@@ -1078,7 +1078,7 @@ icl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
/* Wa_1607087056:icl,ehl,jsl */ /* Wa_1607087056:icl,ehl,jsl */
if (IS_ICELAKE(i915) || if (IS_ICELAKE(i915) ||
IS_JSL_EHL_REVID(i915, EHL_REVID_A0, EHL_REVID_A0)) IS_JSL_EHL_GT_STEP(i915, STEP_A0, STEP_A0))
wa_write_or(wal, wa_write_or(wal,
SLICE_UNIT_LEVEL_CLKGATE, SLICE_UNIT_LEVEL_CLKGATE,
L3_CLKGATE_DIS | L3_CR2X_CLKGATE_DIS); L3_CLKGATE_DIS | L3_CR2X_CLKGATE_DIS);
......
...@@ -1473,11 +1473,10 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915, ...@@ -1473,11 +1473,10 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
#define IS_ICL_GT_STEP(p, since, until) \ #define IS_ICL_GT_STEP(p, since, until) \
(IS_ICELAKE(p) && IS_GT_STEP(p, since, until)) (IS_ICELAKE(p) && IS_GT_STEP(p, since, until))
#define EHL_REVID_A0 0x0 #define IS_JSL_EHL_GT_STEP(p, since, until) \
#define EHL_REVID_B0 0x1 (IS_JSL_EHL(p) && IS_GT_STEP(p, since, until))
#define IS_JSL_EHL_DISPLAY_STEP(p, since, until) \
#define IS_JSL_EHL_REVID(p, since, until) \ (IS_JSL_EHL(p) && IS_DISPLAY_STEP(p, since, until))
(IS_JSL_EHL(p) && IS_REVID(p, since, until))
#define IS_TGL_DISPLAY_STEP(__i915, since, until) \ #define IS_TGL_DISPLAY_STEP(__i915, since, until) \
(IS_TIGERLAKE(__i915) && \ (IS_TIGERLAKE(__i915) && \
......
...@@ -57,6 +57,11 @@ static const struct intel_step_info icl_revids[] = { ...@@ -57,6 +57,11 @@ static const struct intel_step_info icl_revids[] = {
[7] = { COMMON_STEP(D0) }, [7] = { COMMON_STEP(D0) },
}; };
static const struct intel_step_info jsl_ehl_revids[] = {
[0] = { COMMON_STEP(A0) },
[1] = { COMMON_STEP(B0) },
};
static const struct intel_step_info tgl_uy_revids[] = { static const struct intel_step_info tgl_uy_revids[] = {
[0] = { .gt_step = STEP_A0, .display_step = STEP_A0 }, [0] = { .gt_step = STEP_A0, .display_step = STEP_A0 },
[1] = { .gt_step = STEP_B0, .display_step = STEP_C0 }, [1] = { .gt_step = STEP_B0, .display_step = STEP_C0 },
...@@ -104,6 +109,9 @@ void intel_step_init(struct drm_i915_private *i915) ...@@ -104,6 +109,9 @@ void intel_step_init(struct drm_i915_private *i915)
} else if (IS_TIGERLAKE(i915)) { } else if (IS_TIGERLAKE(i915)) {
revids = tgl_revids; revids = tgl_revids;
size = ARRAY_SIZE(tgl_revids); size = ARRAY_SIZE(tgl_revids);
} else if (IS_JSL_EHL(i915)) {
revids = jsl_ehl_revids;
size = ARRAY_SIZE(jsl_ehl_revids);
} else if (IS_ICELAKE(i915)) { } else if (IS_ICELAKE(i915)) {
revids = icl_revids; revids = icl_revids;
size = ARRAY_SIZE(icl_revids); size = ARRAY_SIZE(icl_revids);
......
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