]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/xe/migrate: fix pat index usage
authorMatthew Auld <matthew.auld@intel.com>
Tue, 26 Nov 2024 18:13:00 +0000 (18:13 +0000)
committerThomas Hellström <thomas.hellstrom@linux.intel.com>
Thu, 28 Nov 2024 14:22:36 +0000 (15:22 +0100)
XE_CACHE_WB must be converted into the per-platform pat index for that
particular caching mode, otherwise we are just encoding whatever happens
to be the value of that enum.

Fixes: e8babb280b5e ("drm/xe: Convert multiple bind ops into single job")
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Nirmoy Das <nirmoy.das@intel.com>
Cc: <stable@vger.kernel.org> # v6.12+
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241126181259.159713-3-matthew.auld@intel.com
(cherry picked from commit f3dc9246f9c3cd5a7d8fd70cfd805bfc52214e2e)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
drivers/gpu/drm/xe/xe_migrate.c

index cfd31ae49cc1f71b9bbd51a27bc2fc67db410736..48e205a40fd249d6dfc6f7bbed74e8dd19a4bbf8 100644 (file)
@@ -1350,6 +1350,7 @@ __xe_migrate_update_pgtables(struct xe_migrate *m,
 
        /* For sysmem PTE's, need to map them in our hole.. */
        if (!IS_DGFX(xe)) {
+               u16 pat_index = xe->pat.idx[XE_CACHE_WB];
                u32 ptes, ofs;
 
                ppgtt_ofs = NUM_KERNEL_PDE - 1;
@@ -1409,7 +1410,7 @@ __xe_migrate_update_pgtables(struct xe_migrate *m,
                                                pt_bo->update_index = current_update;
 
                                        addr = vm->pt_ops->pte_encode_bo(pt_bo, 0,
-                                                                        XE_CACHE_WB, 0);
+                                                                        pat_index, 0);
                                        bb->cs[bb->len++] = lower_32_bits(addr);
                                        bb->cs[bb->len++] = upper_32_bits(addr);
                                }