drm/i915/display: Fix u32 overflow in SNPS PHY HDMI PLL setup
authorDibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
Wed, 28 May 2025 06:45:56 +0000 (12:15 +0530)
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Wed, 4 Jun 2025 14:30:53 +0000 (17:30 +0300)
commit791d76005de0ab556b590473eb4cbfede727fce0
tree71cd0d88b611ff84ed697b43ef059d69e2b5c823
parent0323a5127e7c534cfc88efe0f850a0cb777e938b
drm/i915/display: Fix u32 overflow in SNPS PHY HDMI PLL setup

When configuring the HDMI PLL, calculations use DIV_ROUND_UP_ULL and
DIV_ROUND_DOWN_ULL macros, which internally rely on do_div. However, do_div
expects a 32-bit (u32) divisor, and at higher data rates, the divisor can
exceed this limit. This leads to incorrect division results and
ultimately misconfigured PLL values.
This fix replaces do_div calls with  div64_base64 calls where diviser
can exceed u32 limit.

Fixes: 5947642004bf ("drm/i915/display: Add support for SNPS PHY HDMI PLL algorithm for DG2")
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: Suraj Kandpal <suraj.kandpal@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Dibin Moolakadan Subrahmanian <dibin.moolakadan.subrahmanian@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Link: https://lore.kernel.org/r/20250528064557.4172149-1-dibin.moolakadan.subrahmanian@intel.com
(cherry picked from commit ce924116e43ffbfa544d82976c4b9d11bcde9334)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.c