]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe: Fix bug in idledly unit conversion
authorVinay Belgaumkar <vinay.belgaumkar@intel.com>
Wed, 1 Apr 2026 01:27:10 +0000 (18:27 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 7 Apr 2026 20:17:25 +0000 (16:17 -0400)
We only need to convert to picosecond units before writing to RING_IDLEDLY.

Fixes: 7c53ff050ba8 ("drm/xe: Apply Wa_16023105232")
Cc: Tangudu Tilak Tirumalesh <tilak.tirumalesh.tangudu@intel.com>
Acked-by: Tangudu Tilak Tirumalesh <tilak.tirumalesh.tangudu@intel.com>
Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Link: https://patch.msgid.link/20260401012710.4165547-1-vinay.belgaumkar@intel.com
(cherry picked from commit 13743bd628bc9d9a0e2fe53488b2891aedf7cc74)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_hw_engine.c

index 688d645e0e735c41d793d6a311c78c56cb6be8be..aa0b7a427f0bbc1f01f14af2239fec263e5bc8a8 100644 (file)
@@ -595,9 +595,8 @@ static void adjust_idledly(struct xe_hw_engine *hwe)
                maxcnt *= maxcnt_units_ns;
 
                if (xe_gt_WARN_ON(gt, idledly >= maxcnt || inhibit_switch)) {
-                       idledly = DIV_ROUND_CLOSEST(((maxcnt - 1) * maxcnt_units_ns),
+                       idledly = DIV_ROUND_CLOSEST(((maxcnt - 1) * 1000),
                                                    idledly_units_ps);
-                       idledly = DIV_ROUND_CLOSEST(idledly, 1000);
                        xe_mmio_write32(&gt->mmio, RING_IDLEDLY(hwe->mmio_base), idledly);
                }
        }