diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c index daf2c815082c..05fa16044f9b 100644 --- a/drivers/gpu/drm/xe/xe_device.c +++ b/drivers/gpu/drm/xe/xe_device.c @@ -1163,6 +1163,14 @@ void xe_device_td_flush(struct xe_device *xe) { struct xe_gt *root_gt; + /* + * From Xe3p onward the HW takes care of flush of TD entries also along + * with flushing XA entries, which will be at the usual sync points, + * like at the end of submission, so no manual flush is needed here. + */ + if (GRAPHICS_VER(xe) >= 35) + return; + if (!IS_DGFX(xe) || GRAPHICS_VER(xe) < 20) return;