drm/i915/dg2: Add Wa_22011100796
authorBruce Chang <yu.bruce.chang@intel.com>
Fri, 28 Jan 2022 18:52:08 +0000 (00:22 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 21 Jul 2022 19:24:24 +0000 (21:24 +0200)
[ Upstream commit 154cfae6158141b18d65abb0db679bb51a8294e7 ]

Whenever Full soft reset is required, reset all individual engines
first, and then do a full soft reset.

Signed-off-by: Bruce Chang <yu.bruce.chang@intel.com>
cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220128185209.18077-5-ramalingam.c@intel.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/i915/gt/intel_reset.c

index 91200c43951f7bd25ac6597c4fde9accdd32e451..b6697c1d260a563a7562ff9c0e3fe7d6631b1ab5 100644 (file)
@@ -623,6 +623,15 @@ static int gen8_reset_engines(struct intel_gt *gt,
                 */
        }
 
+       /*
+        * Wa_22011100796:dg2, whenever Full soft reset is required,
+        * reset all individual engines firstly, and then do a full soft reset.
+        *
+        * This is best effort, so ignore any error from the initial reset.
+        */
+       if (IS_DG2(gt->i915) && engine_mask == ALL_ENGINES)
+               gen11_reset_engines(gt, gt->info.engine_mask, 0);
+
        if (GRAPHICS_VER(gt->i915) >= 11)
                ret = gen11_reset_engines(gt, engine_mask, retry);
        else