#define LRC_ENGINE_CLASS                       GENMASK_ULL(63, 61)
 #define LRC_ENGINE_INSTANCE                    GENMASK_ULL(53, 48)
 
+#define LRC_PPHWSP_SIZE                                SZ_4K
 #define LRC_INDIRECT_RING_STATE_SIZE           SZ_4K
 
 static struct xe_device *
        struct xe_device *xe = gt_to_xe(gt);
        size_t size;
 
+       /* Per-process HW status page (PPHWSP) */
+       size = LRC_PPHWSP_SIZE;
+
+       /* Engine context image */
        switch (class) {
        case XE_ENGINE_CLASS_RENDER:
                if (GRAPHICS_VER(xe) >= 20)
-                       size = 4 * SZ_4K;
+                       size += 3 * SZ_4K;
                else
-                       size = 14 * SZ_4K;
+                       size += 13 * SZ_4K;
                break;
        case XE_ENGINE_CLASS_COMPUTE:
-               /* 14 pages since graphics_ver == 11 */
                if (GRAPHICS_VER(xe) >= 20)
-                       size = 3 * SZ_4K;
+                       size += 2 * SZ_4K;
                else
-                       size = 14 * SZ_4K;
+                       size += 13 * SZ_4K;
                break;
        default:
                WARN(1, "Unknown engine class: %d", class);
        case XE_ENGINE_CLASS_VIDEO_DECODE:
        case XE_ENGINE_CLASS_VIDEO_ENHANCE:
        case XE_ENGINE_CLASS_OTHER:
-               size = 2 * SZ_4K;
+               size += 1 * SZ_4K;
        }
 
        /* Add indirect ring state page */
 #define LRC_START_SEQNO_PPHWSP_OFFSET (LRC_SEQNO_PPHWSP_OFFSET + 8)
 #define LRC_CTX_JOB_TIMESTAMP_OFFSET (LRC_START_SEQNO_PPHWSP_OFFSET + 8)
 #define LRC_PARALLEL_PPHWSP_OFFSET 2048
-#define LRC_PPHWSP_SIZE SZ_4K
 
 u32 xe_lrc_regs_offset(struct xe_lrc *lrc)
 {