From: Dominik Grzegorzek <[email protected]>

Format of Register_RenderControlUnitDebug1 is different from
previous gens. Adjust it so it matches PTL/xe3 format.

Acked-by: Mika Kuoppala <[email protected]>
Signed-off-by: Dominik Grzegorzek <[email protected]>
Signed-off-by: Mika Kuoppala <[email protected]>
---
 drivers/gpu/drm/xe/xe_eudebug.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_eudebug.c b/drivers/gpu/drm/xe/xe_eudebug.c
index c259e5804386..09b455a96571 100644
--- a/drivers/gpu/drm/xe/xe_eudebug.c
+++ b/drivers/gpu/drm/xe/xe_eudebug.c
@@ -1443,6 +1443,17 @@ static u32 engine_status_xe2(const struct xe_hw_engine * 
const hwe,
        return (rcu_debug1 >> shift) & RCU_DEBUG_1_ENGINE_STATUS;
 }
 
+static u32 engine_status_xe3(const struct xe_hw_engine * const hwe,
+                            u32 rcu_debug1)
+{
+       const unsigned int first = 6;
+       const unsigned int incr = 4;
+       const unsigned int i = rcu_debug1_engine_index(hwe);
+       const unsigned int shift = first + (i * incr);
+
+       return (rcu_debug1 >> shift) & RCU_DEBUG_1_ENGINE_STATUS;
+}
+
 static u32 engine_status(const struct xe_hw_engine * const hwe,
                         u32 rcu_debug1)
 {
@@ -1452,6 +1463,8 @@ static u32 engine_status(const struct xe_hw_engine * 
const hwe,
                status = engine_status_xe1(hwe, rcu_debug1);
        else if (GRAPHICS_VER(gt_to_xe(hwe->gt)) < 30)
                status = engine_status_xe2(hwe, rcu_debug1);
+       else if (GRAPHICS_VER(gt_to_xe(hwe->gt)) < 35)
+               status = engine_status_xe3(hwe, rcu_debug1);
        else
                XE_WARN_ON(GRAPHICS_VER(gt_to_xe(hwe->gt)));
 
-- 
2.43.0

Reply via email to