Message ID | 20200827233943.400946-1-jose.souza@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] drm/i915/tgl: Fix stepping WA matching | expand |
On Fri, 2020-08-28 at 02:24 +0000, Patchwork wrote: > Patch Details > Series: drm/i915/tgl: Fix stepping WA matching (rev3) > URL: https://patchwork.freedesktop.org/series/80820/ > State: failure > Details: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18417/index.html > CI Bug Log - changes from CI_DRM_8935_full -> Patchwork_18417_full > Summary > FAILURE > > Serious unknown changes coming with Patchwork_18417_full absolutely need to be > verified manually. > > If you think the reported changes have nothing to do with the changes > introduced in Patchwork_18417_full, please notify your bug team to allow them > to document this new failure mode, which will reduce false positives in CI. > > Possible new issues > Here are the unknown changes that may have been introduced in Patchwork_18417_full: > > IGT changes > Possible regressions > igt@kms_flip@modeset-vs-vblank-race-interruptible@c-vga1: > shard-hsw: PASS -> INCOMPLETE Failure not related to this changes.Pushed to dinq, thanks for the review Anusha. > Known issues > Here are the changes found in Patchwork_18417_full that come from known issues: > > IGT changes > Issues hit > igt@gem_ctx_isolation@preservation-s3@bcs0: > > shard-skl: PASS -> INCOMPLETE (i915#198) +1 similar issue > igt@gem_ctx_persistence@engines-mixed-process@rcs0: > > shard-apl: PASS -> FAIL (i915#1635 / i915#2374) > igt@gem_exec_reloc@basic-concurrent0: > > shard-glk: PASS -> TIMEOUT (i915#1958) +1 similar issue > > shard-skl: PASS -> TIMEOUT (i915#1958) > > igt@gem_exec_reloc@basic-concurrent16: > > shard-apl: PASS -> TIMEOUT (i915#1635 / i915#1958) > igt@gem_exec_whisper@basic-contexts-priority: > > shard-kbl: PASS -> TIMEOUT (i915#1958) +1 similar issue > igt@kms_big_fb@y-tiled-8bpp-rotate-180: > > shard-apl: PASS -> DMESG-WARN (i915#1635 / i915#1982) > igt@kms_cursor_edge_walk@pipe-c-128x128-top-edge: > > shard-glk: PASS -> DMESG-WARN (i915#1982) > igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy: > > shard-hsw: PASS -> FAIL (i915#96) > igt@kms_flip@flip-vs-suspend-interruptible@c-dp1: > > shard-kbl: PASS -> DMESG-WARN (i915#180) +1 similar issue > igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary: > > shard-iclb: PASS -> DMESG-WARN (i915#1982) +1 similar issue > igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-blt: > > shard-skl: PASS -> FAIL (i915#49) > igt@kms_hdr@bpc-switch-dpms: > > shard-kbl: PASS -> FAIL (i915#1188) > igt@kms_plane@plane-panning-bottom-right-pipe-c-planes: > > shard-skl: PASS -> DMESG-WARN (i915#1982) +18 similar issues > igt@kms_plane_alpha_blend@pipe-a-coverage-7efc: > > shard-skl: PASS -> FAIL (fdo#108145 / i915#265) > igt@kms_psr@psr2_sprite_render: > > shard-iclb: PASS -> SKIP (fdo#109441) +2 similar issues > igt@kms_vblank@pipe-b-ts-continuation-suspend: > > shard-kbl: PASS -> INCOMPLETE (i915#155) > igt@perf@blocking-parameterized: > > shard-tglb: PASS -> FAIL (i915#1542) > igt@perf_pmu@module-unload: > > shard-tglb: PASS -> DMESG-WARN (i915#1982) +2 similar issues > Possible fixes > {igt@feature_discovery@psr2}: > > shard-iclb: SKIP (i915#658) -> PASS > igt@gem_exec_parallel@engines@contexts: > > shard-glk: INCOMPLETE (i915#2398) -> PASS > igt@gem_exec_whisper@basic-contexts-forked: > > shard-glk: DMESG-WARN (i915#118 / i915#95) -> PASS > igt@gem_exec_whisper@basic-fds-all: > > shard-tglb: TIMEOUT (i915#1958) -> PASS > igt@gem_exec_whisper@basic-fds-priority: > > shard-iclb: TIMEOUT (i915#1958) -> PASS > igt@gem_exec_whisper@basic-forked-all: > > shard-glk: TIMEOUT (i915#1958) -> PASS +3 similar issues > igt@gem_exec_whisper@basic-queues-forked-all: > > shard-apl: TIMEOUT (i915#1635 / i915#1958) -> PASS +2 similar issues > igt@i915_suspend@sysfs-reader: > > shard-hsw: INCOMPLETE (i915#2055) -> PASS > igt@kms_cursor_crc@pipe-c-cursor-suspend: > > shard-skl: INCOMPLETE (i915#300) -> PASS > igt@kms_cursor_edge_walk@pipe-b-64x64-top-edge: > > shard-glk: DMESG-WARN (i915#1982) -> PASS > igt@kms_flip@blocking-wf_vblank@a-hdmi-a1: > > shard-glk: FAIL (i915#2122) -> PASS > igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render: > > shard-tglb: DMESG-WARN (i915#1982) -> PASS +1 similar issue > igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite: > > shard-kbl: DMESG-WARN (i915#1982) -> PASS > igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff: > > shard-glk: FAIL (i915#49) -> PASS > igt@kms_frontbuffer_tracking@fbc-suspend: > > shard-kbl: DMESG-WARN (i915#180) -> PASS +5 similar issues > igt@kms_hdr@bpc-switch-dpms: > > shard-skl: FAIL (i915#1188) -> PASS +1 similar issue > igt@kms_plane@plane-panning-top-left-pipe-c-planes: > > shard-skl: DMESG-WARN (i915#1982) -> PASS +9 similar issues > igt@kms_plane_alpha_blend@pipe-c-coverage-7efc: > > shard-skl: FAIL (fdo#108145 / i915#265) -> PASS > igt@kms_psr@psr2_sprite_plane_move: > > shard-iclb: SKIP (fdo#109441) -> PASS +4 similar issues > Warnings > igt@gem_exec_whisper@basic-fds-priority-all: > > shard-glk: DMESG-WARN (i915#118 / i915#95) -> TIMEOUT (i915#1958) > igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min: > > shard-skl: FAIL (fdo#108145 / i915#265) -> DMESG-WARN (i915#1982) > {name}: This element is suppressed. This means it is ignored when computing > the status of the difference (SUCCESS, WARNING, or FAILURE). > > Participating hosts (10 -> 10) > No changes in participating hosts > > Build changes > Linux: CI_DRM_8935 -> Patchwork_18417 > CI-20190529: 20190529 > CI_DRM_8935: 3677673f5564f3b22ba3fe5b9031c395bef32002 @ git://anongit.freedesktop.org/gfx-ci/linux > IGT_5773: 17641a0df4f4a37711a28a9aaf48c0de85ef53d4 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools > Patchwork_18417: 308f1ef1a8cb5520c6d2016d3803ad87909b1e7e @ git://anongit.freedesktop.org/gfx-ci/linux > piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit > >
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c index 7946c6af4b1e..7277e58b01f1 100644 --- a/drivers/gpu/drm/i915/display/intel_display_power.c +++ b/drivers/gpu/drm/i915/display/intel_display_power.c @@ -5263,7 +5263,7 @@ static void tgl_bw_buddy_init(struct drm_i915_private *dev_priv) unsigned long abox_mask = INTEL_INFO(dev_priv)->abox_mask; int config, i; - if (IS_TGL_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_B0)) + if (IS_TGL_DISP_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_B0)) /* Wa_1409767108: tgl */ table = wa_1409767108_buddy_page_masks; else diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c index 2b004ee9619c..8a9d0bdde1bf 100644 --- a/drivers/gpu/drm/i915/display/intel_psr.c +++ b/drivers/gpu/drm/i915/display/intel_psr.c @@ -555,7 +555,7 @@ static void hsw_activate_psr2(struct intel_dp *intel_dp) if (dev_priv->psr.psr2_sel_fetch_enabled) { /* WA 1408330847 */ - if (IS_TGL_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_A0) || + if (IS_TGL_DISP_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_A0) || IS_RKL_REVID(dev_priv, RKL_REVID_A0, RKL_REVID_A0)) intel_de_rmw(dev_priv, CHICKEN_PAR1_1, DIS_RAM_BYPASS_PSR2_MAN_TRACK, @@ -1109,7 +1109,7 @@ static void intel_psr_disable_locked(struct intel_dp *intel_dp) /* WA 1408330847 */ if (dev_priv->psr.psr2_sel_fetch_enabled && - (IS_TGL_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_A0) || + (IS_TGL_DISP_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_A0) || IS_RKL_REVID(dev_priv, RKL_REVID_A0, RKL_REVID_A0))) intel_de_rmw(dev_priv, CHICKEN_PAR1_1, DIS_RAM_BYPASS_PSR2_MAN_TRACK, 0); diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c index c26ca029fc0a..1797a06cfd60 100644 --- a/drivers/gpu/drm/i915/display/intel_sprite.c +++ b/drivers/gpu/drm/i915/display/intel_sprite.c @@ -2845,7 +2845,7 @@ static bool gen12_plane_supports_mc_ccs(struct drm_i915_private *dev_priv, { /* Wa_14010477008:tgl[a0..c0],rkl[all] */ if (IS_ROCKETLAKE(dev_priv) || - IS_TGL_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_C0)) + IS_TGL_DISP_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_C0)) return false; return plane_id < PLANE_SPRITE4; diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c index b0a7cb056633..39817c5a7058 100644 --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c @@ -70,6 +70,19 @@ const struct i915_rev_steppings kbl_revids[] = { [7] = { .gt_stepping = KBL_REVID_G0, .disp_stepping = KBL_REVID_C0 }, }; +const struct i915_rev_steppings tgl_uy_revids[] = { + [0] = { .gt_stepping = TGL_REVID_A0, .disp_stepping = TGL_REVID_A0 }, + [1] = { .gt_stepping = TGL_REVID_B0, .disp_stepping = TGL_REVID_C0 }, + [2] = { .gt_stepping = TGL_REVID_B1, .disp_stepping = TGL_REVID_C0 }, + [3] = { .gt_stepping = TGL_REVID_C0, .disp_stepping = TGL_REVID_D0 }, +}; + +/* Same GT stepping between tgl_uy_revids and tgl_revids don't mean the same HW */ +const struct i915_rev_steppings tgl_revids[] = { + [0] = { .gt_stepping = TGL_REVID_A0, .disp_stepping = TGL_REVID_B0 }, + [1] = { .gt_stepping = TGL_REVID_B0, .disp_stepping = TGL_REVID_D0 }, +}; + static void wa_init_start(struct i915_wa_list *wal, const char *name, const char *engine_name) { wal->name = name; @@ -1219,13 +1232,13 @@ 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_REVID(i915, TGL_REVID_A0, TGL_REVID_A0)) + if (IS_TGL_UY_GT_REVID(i915, TGL_REVID_A0, TGL_REVID_A0)) wa_write_or(wal, SUBSLICE_UNIT_LEVEL_CLKGATE2, CPSSUNIT_CLKGATE_DIS); /* Wa_1607087056:tgl also know as BUG:1409180338 */ - if (IS_TGL_REVID(i915, TGL_REVID_A0, TGL_REVID_A0)) + if (IS_TGL_UY_GT_REVID(i915, TGL_REVID_A0, TGL_REVID_A0)) wa_write_or(wal, SLICE_UNIT_LEVEL_CLKGATE, L3_CLKGATE_DIS | L3_CR2X_CLKGATE_DIS); @@ -1660,7 +1673,7 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) { struct drm_i915_private *i915 = engine->i915; - if (IS_TGL_REVID(i915, TGL_REVID_A0, TGL_REVID_A0)) { + if (IS_TGL_UY_GT_REVID(i915, TGL_REVID_A0, TGL_REVID_A0)) { /* * Wa_1607138336:tgl * Wa_1607063988:tgl @@ -1700,7 +1713,7 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) * Wa_1407928979:tgl A* * Wa_18011464164:tgl B0+ * Wa_22010931296:tgl B0+ - * Wa_14010919138:rkl + * Wa_14010919138:rkl,tgl */ wa_write_or(wal, GEN7_FF_THREAD_MODE, GEN12_FF_TESSELATION_DOP_GATE_DISABLE); @@ -1718,7 +1731,7 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal) GEN8_RC_SEMA_IDLE_MSG_DISABLE); } - if (IS_TIGERLAKE(i915)) { + if (IS_TGL_U(i915) || IS_TGL_Y(i915)) { /* Wa_1606700617:tgl */ wa_masked_en(wal, GEN9_CS_DEBUG_MODE1, diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index ab17084af0ff..a455752221cc 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -1572,12 +1572,41 @@ extern const struct i915_rev_steppings kbl_revids[]; #define IS_EHL_REVID(p, since, until) \ (IS_ELKHARTLAKE(p) && IS_REVID(p, since, until)) -#define TGL_REVID_A0 0x0 -#define TGL_REVID_B0 0x1 -#define TGL_REVID_C0 0x2 +enum { + TGL_REVID_A0, + TGL_REVID_B0, + TGL_REVID_B1, + TGL_REVID_C0, + TGL_REVID_D0, +}; + +extern const struct i915_rev_steppings tgl_uy_revids[]; +extern const struct i915_rev_steppings tgl_revids[]; + +static inline const struct i915_rev_steppings * +tgl_revids_get(struct drm_i915_private *dev_priv) +{ + if (IS_TGL_U(dev_priv) || IS_TGL_Y(dev_priv)) + return tgl_uy_revids; + else + return tgl_revids; +} -#define IS_TGL_REVID(p, since, until) \ - (IS_TIGERLAKE(p) && IS_REVID(p, since, until)) +#define IS_TGL_DISP_REVID(p, since, until) \ + (IS_TIGERLAKE(p) && \ + tgl_revids_get(p)->disp_stepping >= (since) && \ + tgl_revids_get(p)->disp_stepping <= (until)) + +#define IS_TGL_UY_GT_REVID(p, since, until) \ + ((IS_TGL_U(p) || IS_TGL_Y(p)) && \ + tgl_uy_revids->gt_stepping >= (since) && \ + tgl_uy_revids->gt_stepping <= (until)) + +#define IS_TGL_GT_REVID(p, since, until) \ + (IS_TIGERLAKE(p) && \ + !(IS_TGL_U(p) || IS_TGL_Y(p)) && \ + tgl_revids->gt_stepping >= (since) && \ + tgl_revids->gt_stepping <= (until)) #define RKL_REVID_A0 0x0 #define RKL_REVID_B0 0x1 diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index b4bd19266b8c..34e0d22d456b 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -7136,7 +7136,7 @@ static void tgl_init_clock_gating(struct drm_i915_private *dev_priv) I915_READ(POWERGATE_ENABLE) | vd_pg_enable); /* Wa_1409825376:tgl (pre-prod)*/ - if (IS_TGL_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_A0)) + if (IS_TGL_DISP_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_B1)) I915_WRITE(GEN9_CLKGATE_DIS_3, I915_READ(GEN9_CLKGATE_DIS_3) | TGL_VRH_GATING_DIS);