drm/amd/display: Fix 32-bit divide error in wait_for_alt_mode
authorNathan Chancellor <natechancellor@gmail.com>
Tue, 20 Aug 2019 23:57:13 +0000 (16:57 -0700)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 22 Aug 2019 03:18:46 +0000 (22:18 -0500)
When building arm32 allyesconfig:

ld.lld: error: undefined symbol: __aeabi_uldivmod
>>> referenced by dc_link.c
>>> gpu/drm/amd/display/dc/core/dc_link.o:(wait_for_alt_mode) in archive drivers/built-in.a
>>> referenced by dc_link.c
>>> gpu/drm/amd/display/dc/core/dc_link.o:(wait_for_alt_mode) in archive drivers/built-in.a

time_taken_in_ns is of type unsigned long long so we need to use div_u64
to avoid this error.

Fixes: b5b1f4554904 ("drm/amd/display: Enable type C hotplug")
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link.c

index f2d78d7b089e5b7077c1aff26b97dc5c998a89e8..8634923b444431a317c9c8990510d0407792d4ce 100644 (file)
@@ -721,7 +721,7 @@ bool wait_for_alt_mode(struct dc_link *link)
                        time_taken_in_ns = dm_get_elapse_time_in_ns(
                                link->ctx, finish_timestamp, enter_timestamp);
                        DC_LOG_WARNING("Alt mode entered finished after %llu ms\n",
-                                      time_taken_in_ns / 1000000);
+                                      div_u64(time_taken_in_ns, 1000000));
                        return true;
                }
 
@@ -730,7 +730,7 @@ bool wait_for_alt_mode(struct dc_link *link)
        time_taken_in_ns = dm_get_elapse_time_in_ns(link->ctx, finish_timestamp,
                                                    enter_timestamp);
        DC_LOG_WARNING("Alt mode has timed out after %llu ms\n",
-                       time_taken_in_ns / 1000000);
+                       div_u64(time_taken_in_ns, 1000000));
        return false;
 }