]> git.ipfire.org Git - thirdparty/linux.git/commit
drm/i915/snps_hdmi_pll: Fix 64-bit divisor truncation by using div64_u64
authorAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Wed, 18 Jun 2025 13:09:50 +0000 (18:39 +0530)
committerAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Thu, 19 Jun 2025 09:44:48 +0000 (15:14 +0530)
commitb300a175a11e6a934d728317dc39787723cc7917
treef34fa474185e7b074478e9c70fa206db84d93db5
parentbe8f5f88ef34123a73f6dc7eb931a2b587434d29
drm/i915/snps_hdmi_pll: Fix 64-bit divisor truncation by using div64_u64

DIV_ROUND_CLOSEST_ULL uses do_div(), which expects a 32-bit divisor.
When passing a 64-bit constant like CURVE2_MULTIPLIER, the value is
silently truncated to u32, potentially leading to incorrect results
on large divisors.

Replace DIV_ROUND_CLOSEST_ULL with DIV64_U64_ROUND_CLOSEST which correctly
handles full 64-bit division.

v2: Use DIV64_U64_ROUND_CLOSEST instead of div64_u64 macro. (Jani)

Fixes: 5947642004bf ("drm/i915/display: Add support for SNPS PHY HDMI PLL algorithm for DG2")
Reported-by: Vas Novikov <vasya.novikov@gmail.com>
Closes: https://lore.kernel.org/all/8d7c7958-9558-4c8a-a81a-e9310f2d8852@gmail.com/
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: Suraj Kandpal <suraj.kandpal@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Vas Novikov <vasya.novikov@gmail.com>
Cc: stable@vger.kernel.org # v6.15+
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Link: https://lore.kernel.org/r/20250618130951.1596587-2-ankit.k.nautiyal@intel.com
drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.c