[PATCH] drm/amd/display: fix compiling error on 32-Bit Linux

Rex Zhu Rex.Zhu at amd.com
Tue Apr 17 09:37:59 UTC 2018


ERROR: "__udivdi3" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!

Signed-off-by: Rex Zhu <Rex.Zhu at amd.com>
---
 drivers/gpu/drm/amd/display/modules/freesync/freesync.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
index 5e12e46..d1f57d0 100644
--- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
+++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
@@ -616,6 +616,7 @@ void mod_freesync_build_vrr_params(struct mod_freesync *mod_freesync,
 	unsigned int refresh_range = 0;
 	unsigned int min_refresh_in_uhz = 0;
 	unsigned int max_refresh_in_uhz = 0;
+	unsigned long long tmp;
 
 	if (mod_freesync == NULL)
 		return;
@@ -646,8 +647,8 @@ void mod_freesync_build_vrr_params(struct mod_freesync *mod_freesync,
 	 * calculated from pixel rate and vertical/horizontal totals, but
 	 * this should be allowed instead of blocking FreeSync.
 	 */
-	if ((min_refresh_in_uhz / 1000000) >
-			((nominal_field_rate_in_uhz + 1000000 - 1) / 1000000))
+	tmp = div_u64(nominal_field_rate_in_uhz + 1000000 - 1, 1000000);
+	if ((min_refresh_in_uhz / 1000000) > tmp)
 		nominal_field_rate_in_range = false;
 
 	// Full range may be larger than current video timing, so cap at nominal
-- 
1.9.1



More information about the amd-gfx mailing list