]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Apr 2026 11:30:40 +0000 (13:30 +0200)
[ Upstream commit 7596459f3c93d8d45a1bf12d4d7526b50c15baa2 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/xe/xe_hw_engine.c

index 6a9e2a4272ddea567a00d12ca77a0b6c2ae5e28f..3e928b6c098f293dffe08c86f82249c1fc966367 100644 (file)
@@ -596,9 +596,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);
                }
        }