From: Bruce Chang <yu.bruce.ch...@intel.com>

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.ch...@intel.com>
cc: Matt Roper <matthew.d.ro...@intel.com>
Cc: Rodrigo Vivi <rodrigo.v...@intel.com>
Signed-off-by: Ramalingam C <ramalinga...@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_reset.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_reset.c 
b/drivers/gpu/drm/i915/gt/intel_reset.c
index 6f2821cca409..5fae56b89319 100644
--- a/drivers/gpu/drm/i915/gt/intel_reset.c
+++ b/drivers/gpu/drm/i915/gt/intel_reset.c
@@ -600,6 +600,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
-- 
2.20.1

Reply via email to