From: Anusha Srivatsa <[email protected]>

Most of the context WA are already implemented for previous platforms.
Adding adl_p platform tag to reflect so.

BSpec: 54369
Cc: Matt Roper <[email protected]>
Cc: Aditya Swarup <[email protected]>
Cc: Madhumitha Tolakanahalli Pradeep 
<[email protected]>
Cc: Radhakrishna Sripada <[email protected]>
Cc: José Roberto de Souza <[email protected]>
Cc: Swathi Dhanavanthri <[email protected]>
Signed-off-by: Anusha Srivatsa <[email protected]>
Signed-off-by: Clinton Taylor <[email protected]>
Signed-off-by: Matt Roper <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c |  2 +-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c      |  4 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c   | 59 +++++++++++--------
 drivers/gpu/drm/i915/intel_pm.c               |  8 ++-
 4 files changed, 43 insertions(+), 30 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c 
b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
index 2e08fbbab942..8c41f82bbdc1 100644
--- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
@@ -2650,7 +2650,7 @@ ehl_combo_pll_div_frac_wa_needed(struct drm_i915_private 
*i915)
 {
        return ((IS_PLATFORM(i915, INTEL_ELKHARTLAKE) &&
                 IS_JSL_EHL_REVID(i915, EHL_REVID_B0, REVID_FOREVER)) ||
-                IS_TIGERLAKE(i915)) &&
+                IS_TIGERLAKE(i915) || IS_ALDERLAKE_P(i915)) &&
                 i915->dpll.ref_clks.nssc == 38400;
 }
 
diff --git a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c 
b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
index cac80af7ad1c..d179fe5a808f 100644
--- a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
@@ -208,7 +208,7 @@ int gen12_emit_flush_rcs(struct i915_request *rq, u32 mode)
                flags |= PIPE_CONTROL_FLUSH_L3;
                flags |= PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH;
                flags |= PIPE_CONTROL_DEPTH_CACHE_FLUSH;
-               /* Wa_1409600907:tgl */
+               /* Wa_1409600907:tgl,adl_p */
                flags |= PIPE_CONTROL_DEPTH_STALL;
                flags |= PIPE_CONTROL_DC_FLUSH_ENABLE;
                flags |= PIPE_CONTROL_FLUSH_ENABLE;
@@ -626,7 +626,7 @@ u32 *gen12_emit_fini_breadcrumb_rcs(struct i915_request 
*rq, u32 *cs)
                                       PIPE_CONTROL_FLUSH_L3 |
                                       PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH |
                                       PIPE_CONTROL_DEPTH_CACHE_FLUSH |
-                                      /* Wa_1409600907:tgl */
+                                      /* Wa_1409600907:tgl,adl_p */
                                       PIPE_CONTROL_DEPTH_STALL |
                                       PIPE_CONTROL_DC_FLUSH_ENABLE |
                                       PIPE_CONTROL_FLUSH_ENABLE);
diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c 
b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 3b4a7da60f0b..b4647f63ede5 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -650,15 +650,16 @@ static void gen12_ctx_workarounds_init(struct 
intel_engine_cs *engine,
                                       struct i915_wa_list *wal)
 {
        /*
-        * Wa_1409142259:tgl
-        * Wa_1409347922:tgl
-        * Wa_1409252684:tgl
-        * Wa_1409217633:tgl
-        * Wa_1409207793:tgl
-        * Wa_1409178076:tgl
-        * Wa_1408979724:tgl
-        * Wa_14010443199:rkl
-        * Wa_14010698770:rkl
+        * Wa_1409142259:tgl, adl_p
+        * Wa_1409347922:tgl, adl_p
+        * Wa_1409252684:tgl, adl_p
+        * Wa_1409217633:tgl, adl_p
+        * Wa_1409207793:tgl, adl_p
+        * Wa_1409178076:tgl, adl_p
+        * Wa_1408979724:tgl, adl_p
+        * Wa_14010443199:rkl, adl_p
+        * Wa_14010698770:rkl, adl_p
+        * Wa_1409342910: adl_p
         */
        wa_masked_en(wal, GEN11_COMMON_SLICE_CHICKEN3,
                     GEN12_DISABLE_CPS_AWARE_COLOR_PIPE);
@@ -1644,31 +1645,32 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, 
struct i915_wa_list *wal)
            IS_ROCKETLAKE(i915) || IS_TIGERLAKE(i915)) {
                /* Wa_1606931601:tgl,rkl,dg1,adl-s */
                wa_masked_en(wal, GEN7_ROW_CHICKEN2, GEN12_DISABLE_EARLY_READ);
+       }
+
+       if (IS_ALDERLAKE_P(i915) || IS_ALDERLAKE_S(i915) || IS_DG1(i915) ||
+           IS_ROCKETLAKE(i915) || IS_TIGERLAKE(i915)) {
+               /*
+                * Wa_1606700617:tgl,dg1,adlp
+                * Wa_22010271021:tgl,rkl,dg1,adls,adlp
+                * Wa_14010826681: tgl,dg1
+                */
+               wa_masked_en(wal,
+                            GEN9_CS_DEBUG_MODE1,
+                            FF_DOP_CLOCK_GATE_DISABLE);
 
                /*
                 * Wa_1407928979:tgl A*
                 * Wa_18011464164:tgl[B0+],dg1[B0+]
                 * Wa_22010931296:tgl[B0+],dg1[B0+]
-                * Wa_14010919138:rkl,dg1,adl-s
+                * Wa_14010919138:rkl,dg1,adl-s,adl-p
                 */
                wa_write_or(wal, GEN7_FF_THREAD_MODE,
                            GEN12_FF_TESSELATION_DOP_GATE_DISABLE);
-
-               /*
-                * Wa_1606700617:tgl,dg1
-                * Wa_22010271021:tgl,rkl,dg1, adl-s
-                */
-               wa_masked_en(wal,
-                            GEN9_CS_DEBUG_MODE1,
-                            FF_DOP_CLOCK_GATE_DISABLE);
        }
 
-       if (IS_ALDERLAKE_S(i915) || IS_DG1_REVID(i915, DG1_REVID_A0, 
DG1_REVID_A0) ||
+       if (IS_ALDERLAKE_P(i915) || IS_ALDERLAKE_S(i915) ||
+           IS_DG1_REVID(i915, DG1_REVID_A0, DG1_REVID_A0) ||
            IS_ROCKETLAKE(i915) || IS_TIGERLAKE(i915)) {
-               /* Wa_1409804808:tgl,rkl,dg1[a0],adl-s */
-               wa_masked_en(wal, GEN7_ROW_CHICKEN2,
-                            GEN12_PUSH_CONST_DEREF_HOLD_DIS);
-
                /*
                 * Wa_1409085225:tgl
                 * Wa_14010229206:tgl,rkl,dg1[a0],adl-s
@@ -1682,7 +1684,7 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct 
i915_wa_list *wal)
                /*
                 * Wa_1607030317:tgl
                 * Wa_1607186500:tgl
-                * Wa_1607297627:tgl,rkl,dg1[a0]
+                * Wa_1607297627:tgl,rkl,dg1[a0],adl-p
                 *
                 * On TGL and RKL there are multiple entries for this WA in the
                 * BSpec; some indicate this is an A0-only WA, others indicate
@@ -1695,6 +1697,7 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct 
i915_wa_list *wal)
                             GEN8_RC_SEMA_IDLE_MSG_DISABLE);
        }
 
+
        if (IS_DG1(i915) || IS_ROCKETLAKE(i915) || IS_TIGERLAKE(i915)) {
                /* Wa_1406941453:tgl,rkl,dg1 */
                wa_masked_en(wal,
@@ -1702,6 +1705,14 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, 
struct i915_wa_list *wal)
                             ENABLE_SMALLPL);
        }
 
+       if (IS_ALDERLAKE_P(i915) || IS_ALDERLAKE_S(i915) ||
+           IS_DG1_REVID(i915, DG1_REVID_A0, DG1_REVID_A0) ||
+           IS_ROCKETLAKE(i915) || IS_TIGERLAKE(i915)) {
+               /* Wa_1409804808:tgl,rkl,dg1[a0],adl-s,adl-p */
+               wa_masked_en(wal, GEN7_ROW_CHICKEN2,
+                            GEN12_PUSH_CONST_DEREF_HOLD_DIS);
+       }
+
        if (IS_GEN(i915, 11)) {
                /* This is not an Wa. Enable for better image quality */
                wa_masked_en(wal,
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 7fae920fa6ae..486086086205 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -7348,15 +7348,17 @@ static void icl_init_clock_gating(struct 
drm_i915_private *dev_priv)
 static void gen12lp_init_clock_gating(struct drm_i915_private *dev_priv)
 {
        /* Wa_1409120013:tgl,rkl,adl_s,dg1 */
-       intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN,
-                          ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);
+       if (IS_TIGERLAKE(dev_priv) || IS_ROCKETLAKE(dev_priv) ||
+           IS_ALDERLAKE_S(dev_priv) || IS_DG1(dev_priv))
+               intel_uncore_write(&dev_priv->uncore, ILK_DPFC_CHICKEN,
+                                  ILK_DPFC_CHICKEN_COMP_DUMMY_PIXEL);
 
        /* Wa_1409825376:tgl (pre-prod)*/
        if (IS_TGL_DISP_STEPPING(dev_priv, STEP_A0, STEP_B1))
                intel_uncore_write(&dev_priv->uncore, GEN9_CLKGATE_DIS_3, 
intel_uncore_read(&dev_priv->uncore, GEN9_CLKGATE_DIS_3) |
                           TGL_VRH_GATING_DIS);
 
-       /* Wa_14011059788:tgl,rkl,adl_s,dg1 */
+       /* Wa_14011059788:tgl,rkl,adl_s,dg1,adl_p */
        intel_uncore_rmw(&dev_priv->uncore, GEN10_DFR_RATIO_EN_AND_CHICKEN,
                         0, DFR_DISABLE);
 }
-- 
2.25.4

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to