drm/xe/mocs: update MOCS table for xe2
authorMatthew Auld <matthew.auld@intel.com>
Wed, 29 Nov 2023 10:37:07 +0000 (10:37 +0000)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 21 Dec 2023 16:45:09 +0000 (11:45 -0500)
Looks like there were some changes at some point here for preferring L4
uncached for some of the indexes. Triple checked the PAT settings also,
but that looks all correct as per current BSpec.

BSpec: 71582
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_mocs.c

index 12a6d39fcd4a4aebad334cfef3eb82008c49a4aa..ef79552e4f2fe19e72ea1ad23bc7b17b66d3e644 100644 (file)
@@ -366,9 +366,9 @@ static const struct xe_mocs_entry mtl_mocs_desc[] = {
 
 static const struct xe_mocs_entry xe2_mocs_table[] = {
        /* Defer to PAT */
-       MOCS_ENTRY(0, XE2_L3_0_WB | L4_0_WB, 0),
-       /* Cached L3 + L4 */
-       MOCS_ENTRY(1, IG_PAT | XE2_L3_0_WB | L4_0_WB, 0),
+       MOCS_ENTRY(0, XE2_L3_0_WB | L4_3_UC, 0),
+       /* Cached L3, Uncached L4 */
+       MOCS_ENTRY(1, IG_PAT | XE2_L3_0_WB | L4_3_UC, 0),
        /* Uncached L3, Cached L4 */
        MOCS_ENTRY(2, IG_PAT | XE2_L3_3_UC | L4_0_WB, 0),
        /* Uncached L3 + L4 */
@@ -390,8 +390,8 @@ static unsigned int get_mocs_settings(struct xe_device *xe,
                info->table = xe2_mocs_table;
                info->n_entries = XE2_NUM_MOCS_ENTRIES;
                info->uc_index = 3;
-               info->wb_index = 1;
-               info->unused_entries_index = 1;
+               info->wb_index = 4;
+               info->unused_entries_index = 4;
                break;
        case XE_PVC:
                info->size = ARRAY_SIZE(pvc_mocs_desc);