diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5372-drm-amdgpu-Handle-64-bit-return-from-drm_crtc_vblank.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/5372-drm-amdgpu-Handle-64-bit-return-from-drm_crtc_vblank.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5372-drm-amdgpu-Handle-64-bit-return-from-drm_crtc_vblank.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5372-drm-amdgpu-Handle-64-bit-return-from-drm_crtc_vblank.patch new file mode 100644 index 00000000..77fc1d51 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5372-drm-amdgpu-Handle-64-bit-return-from-drm_crtc_vblank.patch @@ -0,0 +1,66 @@ +From ddb3b436f628535ac9e8e0fd0be9e6e62cc94e61 Mon Sep 17 00:00:00 2001 +From: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> +Date: Fri, 2 Feb 2018 21:12:56 -0800 +Subject: [PATCH 5372/5725] drm/amdgpu: Handle 64-bit return from + drm_crtc_vblank_count() + +570e86963a51 ("drm: Widen vblank count to 64-bits [v3]") changed the +return type for drm_crtc_vblank_count() to u64. This could cause +potential problems if the return value is used in arithmetic operations +with a 32-bit reference HW vblank count. Explicitly typecasting this down +to u32 either fixes a potential problem or serves to add clarity in case +the typecasting was implicitly done. + +Cc: Keith Packard <keithp@keithp.com> +Cc: Alex Deucher <alexander.deucher@amd.com> +Cc: Harry Wentland <harry.wentland@amd.com> +Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> +Reviewed-by: Keith Packard <keithp@keithp.com> +Reviewed-by: Harry Wentland <harry.wentland@amd.com> +Acked-by: Alex Deucher <alexander.deucher@amd.com> for both this patch +Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20180203051302.9974-4-dhinakaran.pandiyan@intel.com +Signed-off-by: Raveendra Talabattula <raveendra.talabattula@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 +- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +index 36e3ddf..e00b594 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +@@ -214,7 +214,7 @@ int amdgpu_display_crtc_page_flip_target(struct drm_crtc *crtc, + amdgpu_bo_unreserve(new_abo); + + work->base = amdgpu_bo_gpu_offset(new_abo); +- work->target_vblank = target - drm_crtc_vblank_count(crtc) + ++ work->target_vblank = target - (uint32_t)drm_crtc_vblank_count(crtc) + + amdgpu_get_vblank_counter_kms(dev, work->crtc_id); + + /* we borrow the event spin lock for protecting flip_wrok */ +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +index 569a75e..641f715 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -4354,7 +4354,7 @@ static void amdgpu_dm_do_flip(struct drm_crtc *crtc, + + + /* Prepare wait for target vblank early - before the fence-waits */ +- target_vblank = target - drm_crtc_vblank_count(crtc) + ++ target_vblank = target - (uint32_t)drm_crtc_vblank_count(crtc) + + amdgpu_get_vblank_counter_kms(crtc->dev, acrtc->crtc_id); + + /* +@@ -4597,7 +4597,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state, + amdgpu_dm_do_flip( + crtc, + fb, +- drm_crtc_vblank_count(crtc) + *wait_for_vblank, ++ (uint32_t)drm_crtc_vblank_count(crtc) + *wait_for_vblank, + dm_state->context); + } + +-- +2.7.4 + |