From: Rodrigo Siqueira Date: Thu, 30 Jun 2022 18:46:18 +0000 (-0400) Subject: drm/amd/display: Fix __umoddi3 undefined for 32 bit compilation X-Git-Tag: v6.0-rc1~138^2~16^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0d8928a94ba18205cc7b41793af333e6731e9d76;p=thirdparty%2Fkernel%2Flinux.git drm/amd/display: Fix __umoddi3 undefined for 32 bit compilation While we tried to build amdgpu on i386, we got this error: ERROR: modpost: "__umoddi3" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined! This commit fixes this issue by replacing the standard module operator with div_u64_rem. Cc: Aurabindo Pillai Cc: Harry Wentland Cc: Alex Deucher Cc: Randy Dunlap Fixes: d3dfceb58de5 ("drm/amd/display: Add dependant changes for DCN32/321") Reported-by: Stephen Rothwell Acked-by: Randy Dunlap Tested-by: Randy Dunlap # build-tested Reviewed-by: Alex Deucher Signed-off-by: Rodrigo Siqueira Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c index a10ec59191941..790aa2b3952cc 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c +++ b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c @@ -208,12 +208,14 @@ static uint32_t dcn32_cache_lines_for_surface(struct dc *dc, uint32_t surface_si uint32_t num_cached_bytes = 0; uint32_t remaining_size = 0; uint32_t cache_line_size = dc->caps.cache_line_size; + uint32_t remainder = 0; /* 1. Calculate surface size minus the number of bytes stored * in the first cache line (all bytes in first cache line might * not be fully used). */ - num_cached_bytes = cache_line_size - (start_address % cache_line_size); + div_u64_rem(start_address, cache_line_size, &remainder); + num_cached_bytes = cache_line_size - remainder; remaining_size = surface_size - num_cached_bytes; /* 2. Calculate number of cache lines that will be fully used with