[Intel-xe] [PATCH 4/6] drm/xe: Fix xe_mmio_rmw32 operation

Matt Roper matthew.d.roper at intel.com
Wed Apr 12 18:48:33 UTC 2023


xe_mmio_rmw32 was failing to invert the passed in mask, resulting in a
register updated that wasn't the expected RMW operation.  Fortunately
the impact of this mistake was limited, since xe_mmio_rmw32() is only
used in two places to unmask certain GuC-related interrupts.

Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
---
 drivers/gpu/drm/xe/xe_mmio.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_mmio.h b/drivers/gpu/drm/xe/xe_mmio.h
index 388a633b438b..a3b7f9f5db67 100644
--- a/drivers/gpu/drm/xe/xe_mmio.h
+++ b/drivers/gpu/drm/xe/xe_mmio.h
@@ -40,7 +40,7 @@ static inline u32 xe_mmio_rmw32(struct xe_gt *gt, u32 reg, u32 mask,
 	u32 old, reg_val;
 
 	old = xe_mmio_read32(gt, reg);
-	reg_val = (old & mask) | val;
+	reg_val = (old & ~mask) | val;
 	xe_mmio_write32(gt, reg, reg_val);
 
 	return old;
-- 
2.39.2



More information about the Intel-xe mailing list