]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/xe/guc_ads: use uncached mapping for UM queue BO
authorJia Yao <jia.yao@intel.com>
Tue, 4 Aug 2026 16:50:57 +0000 (16:50 +0000)
committerThomas Hellström <thomas.hellstrom@linux.intel.com>
Thu, 13 Aug 2026 12:56:33 +0000 (14:56 +0200)
On Pre-Xe3p platform, the GAM write the UM queue through DPA using UC.
if GuC reads the queue via GGTT (WB), stale data may be observed
when the cacheline has been polluted by another agent.

To match the GAM's UC writes, configure the GuC mapping as UC as well.

Fixes: 9c57bc08652a ("drm/xe/lnl: Drop force_probe requirement")
Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: <stable@vger.kernel.org> # v6.12+
Signed-off-by: Jia Yao <jia.yao@intel.com>
Reviewed by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patch.msgid.link/20260804165057.129529-4-jia.yao@intel.com
(cherry picked from commit 9daa302a82590eeee7bdc68023ddad302df4b88c)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
drivers/gpu/drm/xe/xe_guc_ads.c

index b6d07f2e73bfcce56850808cf8e70c587f806bfb..886bafd31f45a50e4212760ba1c58695232fde2f 100644 (file)
@@ -406,7 +406,8 @@ int xe_guc_ads_init(struct xe_guc_ads *ads)
                u32 um_flags = XE_BO_FLAG_VRAM_IF_DGFX(tile) |
                               XE_BO_FLAG_GGTT |
                               XE_BO_FLAG_GGTT_INVALIDATE |
-                              XE_BO_FLAG_PINNED_NORESTORE;
+                              XE_BO_FLAG_PINNED_NORESTORE |
+                              XE_BO_FLAG_NEEDS_UC;
 
                bo = xe_managed_bo_create_pin_map(xe, tile, um_size, um_flags);
                if (IS_ERR(bo))