drm/amd/display: Use div_u64 for flip timestamp ns to ms
authorNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Wed, 19 Dec 2018 13:35:51 +0000 (08:35 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 20 Dec 2018 17:12:41 +0000 (12:12 -0500)
Resolves __udivdi3 missing errors when building for i386.

Fixes: 6378ef012ddc ("drm/amd/display: Add below the range support for FreeSync")
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index d49bcc9c897488688e443e5401bbe65f028ac892..56e9848b7739102dc526c80f41a3a3b1c0827705 100644 (file)
@@ -4562,6 +4562,7 @@ static void amdgpu_dm_do_flip(struct drm_crtc *crtc,
                              struct dc_state *state)
 {
        unsigned long flags;
+       uint64_t timestamp_ns;
        uint32_t target_vblank;
        int r, vpos, hpos;
        struct amdgpu_crtc *acrtc = to_amdgpu_crtc(crtc);
@@ -4624,7 +4625,9 @@ static void amdgpu_dm_do_flip(struct drm_crtc *crtc,
        addr.address.grph.addr.low_part = lower_32_bits(afb->address);
        addr.address.grph.addr.high_part = upper_32_bits(afb->address);
        addr.flip_immediate = async_flip;
-       addr.flip_timestamp_in_us = ktime_get_ns() / 1000;
+
+       timestamp_ns = ktime_get_ns();
+       addr.flip_timestamp_in_us = div_u64(timestamp_ns, 1000);
 
 
        if (acrtc->base.state->event)