[Intel-gfx] [PATCH 7/7] drm/i915: Make workaround upper bounds exclusive
Jani Nikula
jani.nikula at linux.intel.com
Tue Aug 10 12:58:08 UTC 2021
On Mon, 19 Jul 2021, "Souza, Jose" <jose.souza at intel.com> wrote:
> On Fri, 2021-07-16 at 22:14 -0700, Matt Roper wrote:
>> Workarounds are documented in the bspec with an exclusive upper bound
>> (i.e., a "fixed" stepping that no longer needs the workaround). This
>> makes our driver's use of an inclusive upper bound for stepping ranges
>> confusing; the differing notation between code and bspec makes it very
>> easy for mistakes to creep in.
>>
>> Let's switch the upper bound of our IS_{GT,DISP}_STEP macros over to use
>> an exclusive upper bound like the bspec does. This also has the benefit
>> of helping make sure workarounds are properly handled for new minor
>> steppings that show up (e.g., an A1 between the A0 and B0 we already
>> knew about) --- if the new intermediate stepping pulls in hardware fixes
>> early, there will be an update to the workaround definition which lets
>> us know we need to change our code. If the new stepping does not pull a
>> hardware fix earlier, then the new stepping will already be captured
>> properly by the "[begin, fix)" range in the code.
>>
>> We'll probably need to be extra vigilant in code review of new
>> workarounds for the near future to make sure developers notice the new
>> semantics of workaround bounds. But we just migrated a bunch of our
>> platforms from the IS_REVID bounds over to IS_{GT,DISP}_STEP, so people
>> are already adjusting to the new macros and now is a good time to make
>> this change too.
>>
>> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
It's been merged already, but I think this is a good example of a patch
where simple review is just not enough. Needs maintainers in Cc and acks
on top.
BR,
Jani.
>> ---
>> drivers/gpu/drm/i915/display/intel_cdclk.c | 2 +-
>> .../drm/i915/display/intel_display_power.c | 8 +++---
>> drivers/gpu/drm/i915/display/intel_psr.c | 18 ++++++------
>> .../drm/i915/display/skl_universal_plane.c | 8 +++---
>> drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 2 +-
>> drivers/gpu/drm/i915/gt/intel_region_lmem.c | 2 +-
>> drivers/gpu/drm/i915/gt/intel_workarounds.c | 28 +++++++++----------
>> drivers/gpu/drm/i915/i915_drv.h | 4 +--
>> drivers/gpu/drm/i915/intel_device_info.c | 2 +-
>> drivers/gpu/drm/i915/intel_pm.c | 8 +++---
>> 10 files changed, 41 insertions(+), 41 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
>> index 71067a62264d..944fb13b9d98 100644
>> --- a/drivers/gpu/drm/i915/display/intel_cdclk.c
>> +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
>> @@ -2879,7 +2879,7 @@ void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv)
>> dev_priv->display.modeset_calc_cdclk = bxt_modeset_calc_cdclk;
>> dev_priv->display.calc_voltage_level = tgl_calc_voltage_level;
>> /* Wa_22011320316:adl-p[a0] */
>> - if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A0))
>> + if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
>> dev_priv->cdclk.table = adlp_a_step_cdclk_table;
>> else
>> dev_priv->cdclk.table = adlp_cdclk_table;
>> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
>> index e3aaf9678b07..bec380e58f40 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
>> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
>> @@ -5799,10 +5799,10 @@ static void tgl_bw_buddy_init(struct drm_i915_private *dev_priv)
>> int config, i;
>>
>> if (IS_ALDERLAKE_S(dev_priv) ||
>> - IS_DG1_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A0) ||
>> - IS_RKL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A0) ||
>> - IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
>> - /* Wa_1409767108:tgl,rkl,dg1,adl-s */
>> + IS_DG1_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0) ||
>> + IS_RKL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0) ||
>> + IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_C0))
>> + /* Wa_1409767108:tgl,dg1,adl-s */
>> table = wa_1409767108_buddy_page_masks;
>> else
>> table = tgl_buddy_page_masks;
>> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
>> index 0a3d42c8d47d..f0381edefded 100644
>> --- a/drivers/gpu/drm/i915/display/intel_psr.c
>> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
>> @@ -546,7 +546,7 @@ static void hsw_activate_psr2(struct intel_dp *intel_dp)
>> val |= intel_psr2_get_tp_time(intel_dp);
>>
>> /* Wa_22012278275:adl-p */
>> - if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_D1)) {
>> + if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_E0)) {
>> static const u8 map[] = {
>> 2, /* 5 lines */
>> 1, /* 6 lines */
>> @@ -593,7 +593,7 @@ static void hsw_activate_psr2(struct intel_dp *intel_dp)
>>
>> if (intel_dp->psr.psr2_sel_fetch_enabled) {
>> /* Wa_1408330847 */
>> - if (IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A0))
>> + if (IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
>> intel_de_rmw(dev_priv, CHICKEN_PAR1_1,
>> DIS_RAM_BYPASS_PSR2_MAN_TRACK,
>> DIS_RAM_BYPASS_PSR2_MAN_TRACK);
>> @@ -733,7 +733,7 @@ tgl_dc3co_exitline_compute_config(struct intel_dp *intel_dp,
>> return;
>>
>> /* Wa_16011303918:adl-p */
>> - if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A0))
>> + if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
>> return;
>>
>> /*
>> @@ -780,7 +780,7 @@ static bool intel_psr2_sel_fetch_config_valid(struct intel_dp *intel_dp,
>> }
>>
>> /* Wa_14010254185 Wa_14010103792 */
>> - if (IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B1)) {
>> + if (IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_C0)) {
>> drm_dbg_kms(&dev_priv->drm,
>> "PSR2 sel fetch not enabled, missing the implementation of WAs\n");
>> return false;
>> @@ -939,7 +939,7 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp,
>>
>> /* Wa_2209313811 */
>> if (!crtc_state->enable_psr2_sel_fetch &&
>> - IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B1)) {
>> + IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_C0)) {
>> drm_dbg_kms(&dev_priv->drm, "PSR2 HW tracking is not supported this Display stepping\n");
>> return false;
>> }
>> @@ -966,7 +966,7 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp,
>>
>> /* Wa_16011303918:adl-p */
>> if (crtc_state->vrr.enable &&
>> - IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A0)) {
>> + IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0)) {
>> drm_dbg_kms(&dev_priv->drm,
>> "PSR2 not enabled, not compatible with HW stepping + VRR\n");
>> return false;
>> @@ -1160,7 +1160,7 @@ static void intel_psr_enable_source(struct intel_dp *intel_dp)
>> IGNORE_PSR2_HW_TRACKING : 0);
>>
>> /* Wa_16011168373:adl-p */
>> - if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A0) &&
>> + if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0) &&
>> intel_dp->psr.psr2_enabled)
>> intel_de_rmw(dev_priv,
>> TRANS_SET_CONTEXT_LATENCY(intel_dp->psr.transcoder),
>> @@ -1340,12 +1340,12 @@ static void intel_psr_disable_locked(struct intel_dp *intel_dp)
>>
>> /* Wa_1408330847 */
>> if (intel_dp->psr.psr2_sel_fetch_enabled &&
>> - IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A0))
>> + IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
>> intel_de_rmw(dev_priv, CHICKEN_PAR1_1,
>> DIS_RAM_BYPASS_PSR2_MAN_TRACK, 0);
>>
>> /* Wa_16011168373:adl-p */
>> - if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A0) &&
>> + if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0) &&
>> intel_dp->psr.psr2_enabled)
>> intel_de_rmw(dev_priv,
>> TRANS_SET_CONTEXT_LATENCY(intel_dp->psr.transcoder),
>> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
>> index 628b678d9a71..3ad04bf2a0fd 100644
>> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
>> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
>> @@ -1910,11 +1910,11 @@ static bool gen12_plane_supports_mc_ccs(struct drm_i915_private *dev_priv,
>> {
>> /* Wa_14010477008:tgl[a0..c0],rkl[all],dg1[all] */
>> if (IS_DG1(dev_priv) || IS_ROCKETLAKE(dev_priv) ||
>> - IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_C0))
>> + IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_D0))
>> return false;
>>
>> /* Wa_22011186057 */
>> - if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A0))
>> + if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
>> return false;
>>
>> return plane_id < PLANE_SPRITE4;
>> @@ -1938,7 +1938,7 @@ static bool gen12_plane_format_mod_supported(struct drm_plane *_plane,
>> case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
>> case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
>> /* Wa_22011186057 */
>> - if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A0))
>> + if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
>> return false;
>> break;
>> default:
>> @@ -1995,7 +1995,7 @@ static const u64 *gen12_get_plane_modifiers(struct drm_i915_private *dev_priv,
>> enum plane_id plane_id)
>> {
>> /* Wa_22011186057 */
>> - if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A0))
>> + if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
>> return adlp_step_a_plane_format_modifiers;
>> else if (gen12_plane_supports_mc_ccs(dev_priv, plane_id))
>> return gen12_plane_format_modifiers_mc_ccs;
>> diff --git a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
>> index 87b06572fd2e..a69f5c438c72 100644
>> --- a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
>> +++ b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
>> @@ -42,7 +42,7 @@ int gen8_emit_flush_rcs(struct i915_request *rq, u32 mode)
>> vf_flush_wa = true;
>>
>> /* WaForGAMHang:kbl */
>> - if (IS_KBL_GT_STEP(rq->engine->i915, 0, STEP_B0))
>> + if (IS_KBL_GT_STEP(rq->engine->i915, 0, STEP_C0))
>> dc_flush_wa = true;
>> }
>>
>> diff --git a/drivers/gpu/drm/i915/gt/intel_region_lmem.c b/drivers/gpu/drm/i915/gt/intel_region_lmem.c
>> index 50d11a84e7a9..e3a2a2fa5f94 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_region_lmem.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_region_lmem.c
>> @@ -157,7 +157,7 @@ intel_gt_setup_fake_lmem(struct intel_gt *gt)
>> static bool get_legacy_lowmem_region(struct intel_uncore *uncore,
>> u64 *start, u32 *size)
>> {
>> - if (!IS_DG1_GT_STEP(uncore->i915, STEP_A0, STEP_B0))
>> + if (!IS_DG1_GT_STEP(uncore->i915, STEP_A0, STEP_C0))
>> return false;
>>
>> *start = 0;
>> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
>> index 685c6115d380..247f0331ebee 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
>> @@ -838,7 +838,7 @@ skl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
>> GEN8_EU_GAUNIT_CLOCK_GATE_DISABLE);
>>
>> /* WaInPlaceDecompressionHang:skl */
>> - if (IS_SKL_GT_STEP(i915, STEP_A0, STEP_H0 - 1))
>> + if (IS_SKL_GT_STEP(i915, STEP_A0, STEP_H0))
>> wa_write_or(wal,
>> GEN9_GAMT_ECO_REG_RW_IA,
>> GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS);
>> @@ -850,7 +850,7 @@ kbl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
>> gen9_gt_workarounds_init(i915, wal);
>>
>> /* WaDisableDynamicCreditSharing:kbl */
>> - if (IS_KBL_GT_STEP(i915, 0, STEP_B0))
>> + if (IS_KBL_GT_STEP(i915, 0, STEP_C0))
>> wa_write_or(wal,
>> GAMT_CHKN_BIT_REG,
>> GAMT_CHKN_DISABLE_DYNAMIC_CREDIT_SHARING);
>> @@ -961,7 +961,7 @@ icl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
>>
>> /* Wa_1607087056:icl,ehl,jsl */
>> if (IS_ICELAKE(i915) ||
>> - IS_JSL_EHL_GT_STEP(i915, STEP_A0, STEP_A0))
>> + IS_JSL_EHL_GT_STEP(i915, STEP_A0, STEP_B0))
>> wa_write_or(wal,
>> SLICE_UNIT_LEVEL_CLKGATE,
>> L3_CLKGATE_DIS | L3_CR2X_CLKGATE_DIS);
>> @@ -1015,19 +1015,19 @@ tgl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
>> gen12_gt_workarounds_init(i915, wal);
>>
>> /* Wa_1409420604:tgl */
>> - if (IS_TGL_UY_GT_STEP(i915, STEP_A0, STEP_A0))
>> + if (IS_TGL_UY_GT_STEP(i915, STEP_A0, STEP_B0))
>> wa_write_or(wal,
>> SUBSLICE_UNIT_LEVEL_CLKGATE2,
>> CPSSUNIT_CLKGATE_DIS);
>>
>> /* Wa_1607087056:tgl also know as BUG:1409180338 */
>> - if (IS_TGL_UY_GT_STEP(i915, STEP_A0, STEP_A0))
>> + if (IS_TGL_UY_GT_STEP(i915, STEP_A0, STEP_B0))
>> wa_write_or(wal,
>> SLICE_UNIT_LEVEL_CLKGATE,
>> L3_CLKGATE_DIS | L3_CR2X_CLKGATE_DIS);
>>
>> /* Wa_1408615072:tgl[a0] */
>> - if (IS_TGL_UY_GT_STEP(i915, STEP_A0, STEP_A0))
>> + if (IS_TGL_UY_GT_STEP(i915, STEP_A0, STEP_B0))
>> wa_write_or(wal, UNSLICE_UNIT_LEVEL_CLKGATE2,
>> VSUNIT_CLKGATE_DIS_TGL);
>> }
>> @@ -1038,7 +1038,7 @@ dg1_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
>> gen12_gt_workarounds_init(i915, wal);
>>
>> /* Wa_1607087056:dg1 */
>> - if (IS_DG1_GT_STEP(i915, STEP_A0, STEP_A0))
>> + if (IS_DG1_GT_STEP(i915, STEP_A0, STEP_B0))
>> wa_write_or(wal,
>> SLICE_UNIT_LEVEL_CLKGATE,
>> L3_CLKGATE_DIS | L3_CR2X_CLKGATE_DIS);
>> @@ -1436,7 +1436,7 @@ static void dg1_whitelist_build(struct intel_engine_cs *engine)
>> tgl_whitelist_build(engine);
>>
>> /* GEN:BUG:1409280441:dg1 */
>> - if (IS_DG1_GT_STEP(engine->i915, STEP_A0, STEP_A0) &&
>> + if (IS_DG1_GT_STEP(engine->i915, STEP_A0, STEP_B0) &&
>> (engine->class == RENDER_CLASS ||
>> engine->class == COPY_ENGINE_CLASS))
>> whitelist_reg_ext(w, RING_ID(engine->mmio_base),
>> @@ -1504,8 +1504,8 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal)
>> {
>> struct drm_i915_private *i915 = engine->i915;
>>
>> - if (IS_DG1_GT_STEP(i915, STEP_A0, STEP_A0) ||
>> - IS_TGL_UY_GT_STEP(i915, STEP_A0, STEP_A0)) {
>> + if (IS_DG1_GT_STEP(i915, STEP_A0, STEP_B0) ||
>> + IS_TGL_UY_GT_STEP(i915, STEP_A0, STEP_B0)) {
>> /*
>> * Wa_1607138336:tgl[a0],dg1[a0]
>> * Wa_1607063988:tgl[a0],dg1[a0]
>> @@ -1515,7 +1515,7 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal)
>> GEN12_DISABLE_POSH_BUSY_FF_DOP_CG);
>> }
>>
>> - if (IS_TGL_UY_GT_STEP(i915, STEP_A0, STEP_A0)) {
>> + if (IS_TGL_UY_GT_STEP(i915, STEP_A0, STEP_B0)) {
>> /*
>> * Wa_1606679103:tgl
>> * (see also Wa_1606682166:icl)
>> @@ -1550,7 +1550,7 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal)
>> }
>>
>> if (IS_ALDERLAKE_P(i915) || IS_ALDERLAKE_S(i915) ||
>> - IS_DG1_GT_STEP(i915, STEP_A0, STEP_A0) ||
>> + IS_DG1_GT_STEP(i915, STEP_A0, STEP_B0) ||
>> IS_ROCKETLAKE(i915) || IS_TIGERLAKE(i915)) {
>> /* Wa_1409804808:tgl,rkl,dg1[a0],adl-s,adl-p */
>> wa_masked_en(wal, GEN7_ROW_CHICKEN2,
>> @@ -1564,7 +1564,7 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal)
>> }
>>
>>
>> - if (IS_DG1_GT_STEP(i915, STEP_A0, STEP_A0) ||
>> + if (IS_DG1_GT_STEP(i915, STEP_A0, STEP_B0) ||
>> IS_ROCKETLAKE(i915) || IS_TIGERLAKE(i915)) {
>> /*
>> * Wa_1607030317:tgl
>> @@ -1925,7 +1925,7 @@ xcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal)
>> struct drm_i915_private *i915 = engine->i915;
>>
>> /* WaKBLVECSSemaphoreWaitPoll:kbl */
>> - if (IS_KBL_GT_STEP(i915, STEP_A0, STEP_E0)) {
>> + if (IS_KBL_GT_STEP(i915, STEP_A0, STEP_F0)) {
>> wa_write(wal,
>> RING_SEMA_WAIT_POLL(engine->mmio_base),
>> 1);
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index da5f230e2d4b..b42405afb28e 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -1332,11 +1332,11 @@ static inline struct drm_i915_private *pdev_to_i915(struct pci_dev *pdev)
>>
>> #define IS_DISPLAY_STEP(__i915, since, until) \
>> (drm_WARN_ON(&(__i915)->drm, INTEL_DISPLAY_STEP(__i915) == STEP_NONE), \
>> - INTEL_DISPLAY_STEP(__i915) >= (since) && INTEL_DISPLAY_STEP(__i915) <= (until))
>> + INTEL_DISPLAY_STEP(__i915) >= (since) && INTEL_DISPLAY_STEP(__i915) < (until))
>>
>> #define IS_GT_STEP(__i915, since, until) \
>> (drm_WARN_ON(&(__i915)->drm, INTEL_GT_STEP(__i915) == STEP_NONE), \
>> - INTEL_GT_STEP(__i915) >= (since) && INTEL_GT_STEP(__i915) <= (until))
>> + INTEL_GT_STEP(__i915) >= (since) && INTEL_GT_STEP(__i915) < (until))
>
> Would be nice to have some comment about bound in here.
>
> Did not manually checked each workaround against bspec, only checked the old and new until values and it makes sense.
> With the comment requested above:
>
> Reviewed-by: José Roberto de Souza <jose.souza at intel.com>
>
>
>>
>> static __always_inline unsigned int
>> __platform_mask_index(const struct intel_runtime_info *info,
>> diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c
>> index dd63dd2c45ad..5c83b2ec69da 100644
>> --- a/drivers/gpu/drm/i915/intel_device_info.c
>> +++ b/drivers/gpu/drm/i915/intel_device_info.c
>> @@ -262,7 +262,7 @@ void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
>> enum pipe pipe;
>>
>> /* Wa_14011765242: adl-s A0,A1 */
>> - if (IS_ADLS_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A1))
>> + if (IS_ADLS_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A2))
>> for_each_pipe(dev_priv, pipe)
>> runtime->num_scalers[pipe] = 0;
>> else if (GRAPHICS_VER(dev_priv) >= 10) {
>> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
>> index 8a84abfaa4b0..597383430ca6 100644
>> --- a/drivers/gpu/drm/i915/intel_pm.c
>> +++ b/drivers/gpu/drm/i915/intel_pm.c
>> @@ -7359,7 +7359,7 @@ static void gen12lp_init_clock_gating(struct drm_i915_private *dev_priv)
>> ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);
>>
>> /* Wa_1409825376:tgl (pre-prod)*/
>> - if (IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B1))
>> + if (IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_C0))
>> intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_3, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_3) |
>> TGL_VRH_GATING_DIS);
>>
>> @@ -7382,7 +7382,7 @@ static void dg1_init_clock_gating(struct drm_i915_private *dev_priv)
>> gen12lp_init_clock_gating(dev_priv);
>>
>> /* Wa_1409836686:dg1[a0] */
>> - if (IS_DG1_GT_STEP(dev_priv, STEP_A0, STEP_A0))
>> + if (IS_DG1_GT_STEP(dev_priv, STEP_A0, STEP_B0))
>> intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_3, intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_3) |
>> DPT_GATING_DIS);
>> }
>> @@ -7467,12 +7467,12 @@ static void kbl_init_clock_gating(struct drm_i915_private *dev_priv)
>> FBC_LLC_FULLY_OPEN);
>>
>> /* WaDisableSDEUnitClockGating:kbl */
>> - if (IS_KBL_GT_STEP(dev_priv, 0, STEP_B0))
>> + if (IS_KBL_GT_STEP(dev_priv, 0, STEP_C0))
>> intel_uncore_write(&dev_priv->uncore, GEN8_UCGCTL6, intel_uncore_read(&dev_priv->uncore, GEN8_UCGCTL6) |
>> GEN8_SDEUNIT_CLOCK_GATE_DISABLE);
>>
>> /* WaDisableGamClockGating:kbl */
>> - if (IS_KBL_GT_STEP(dev_priv, 0, STEP_B0))
>> + if (IS_KBL_GT_STEP(dev_priv, 0, STEP_C0))
>> intel_uncore_write(&dev_priv->uncore, GEN6_UCGCTL1, intel_uncore_read(&dev_priv->uncore, GEN6_UCGCTL1) |
>> GEN6_GAMUNIT_CLOCK_GATE_DISABLE);
>>
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Jani Nikula, Intel Open Source Graphics Center
More information about the Intel-gfx
mailing list