drm/xe/mocs: Fix DG2 kunit
authorLucas De Marchi <lucas.demarchi@intel.com>
Wed, 28 Feb 2024 06:10:48 +0000 (22:10 -0800)
committerLucas De Marchi <lucas.demarchi@intel.com>
Fri, 1 Mar 2024 04:29:42 +0000 (20:29 -0800)
LNCFCMOCS31[31:16] is read-only for DG2 and MTL, so it's not possible to
check set it. While trying to set doesn't cause any issue, later when
it's read back to check if the value got correctly recorded causes the
test to fail. Now that test is reliable for an odd number of entries,
reduce it so the last entry is ignored.

Bspec: 55267
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/1253
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/1233
Cc: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240228061048.3661978-6-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
drivers/gpu/drm/xe/xe_mocs.c

index 60ab34f..f56f630 100644 (file)
@@ -72,7 +72,7 @@ struct xe_mocs_info {
 /* Helper defines */
 #define XELP_NUM_MOCS_ENTRIES  64  /* 63-64 are reserved, but configured. */
 #define PVC_NUM_MOCS_ENTRIES   3
-#define MTL_NUM_MOCS_ENTRIES    16
+#define MTL_NUM_MOCS_ENTRIES   16
 #define XE2_NUM_MOCS_ENTRIES   16
 
 /* (e)LLC caching options */
@@ -401,7 +401,11 @@ static unsigned int get_mocs_settings(struct xe_device *xe,
                info->size = ARRAY_SIZE(dg2_mocs_desc);
                info->table = dg2_mocs_desc;
                info->uc_index = 1;
-               info->n_entries = XELP_NUM_MOCS_ENTRIES;
+               /*
+                * Last entry is RO on hardware, don't bother with what was
+                * written when checking later
+                */
+               info->n_entries = XELP_NUM_MOCS_ENTRIES - 1;
                info->unused_entries_index = 3;
                break;
        case XE_DG1: