]> git.hungrycats.org Git - linux/commitdiff
drm/xe/guc_ads: use uncached mapping for UM queue BO
authorJia Yao <jia.yao@intel.com>
Tue, 25 Aug 2026 23:30:53 +0000 (23:30 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 2 Sep 2026 12:31:46 +0000 (14:31 +0200)
commit 8d5134ae4177fa4f5a9bc8e71e6656cfc2852882 upstream.

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 8d5134ae4177fa4f5a9bc8e71e6656cfc2852882)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/xe/xe_guc_ads.c

index 4f48356ae622b80269d1f243e7b59620dbb8e841..63017ae2c38186a24ce16e40f57679e3db0d3190 100644 (file)
@@ -405,7 +405,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))