#define MTL_MIRROR_TARGET_WP1 XE_REG(0xc60)
#define MTL_CAGF_MASK REG_GENMASK(8, 0)
#define MTL_CC_MASK REG_GENMASK(12, 9)
+#define MTL_CRST 0xf
/* RPM unit config (Gen8+) */
#define RPM_CONFIG0 XE_REG(0xd00)
if (GRAPHICS_VERx100(gt_to_xe(gt)) >= 1270) {
reg = xe_mmio_read32(>->mmio, MTL_MIRROR_TARGET_WP1);
gt_c_state = REG_FIELD_GET(MTL_CC_MASK, reg);
+
+ /*
+ * There are higher level sleep states that will cause this
+ * field to read out as its reset state, and those are only
+ * possible after the GT is already in C6.
+ */
+ if (gt_c_state == MTL_CRST)
+ gt_c_state = GT_C6;
} else {
reg = xe_mmio_read32(>->mmio, GT_CORE_STATUS);
gt_c_state = REG_FIELD_GET(RCN_MASK, reg);