diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4077-drm-amd-display-Add-capability-check-for-static-ramp.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4077-drm-amd-display-Add-capability-check-for-static-ramp.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4077-drm-amd-display-Add-capability-check-for-static-ramp.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4077-drm-amd-display-Add-capability-check-for-static-ramp.patch new file mode 100644 index 00000000..6c178fb4 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4077-drm-amd-display-Add-capability-check-for-static-ramp.patch @@ -0,0 +1,40 @@ +From a3341c8396d18832ea305384a18e0cc3095f38fa Mon Sep 17 00:00:00 2001 +From: Jaehyun Chung <jaehyun.chung@amd.com> +Date: Mon, 23 Sep 2019 10:00:57 -0400 +Subject: [PATCH 4077/4256] drm/amd/display: Add capability check for static + ramp calc + +[Why] +Static ramp to max refresh rate does not have capability check on +calculated v_total. Programming a lower v_total_min and max than the +total causes continuous spurious HPDs. + +[How] +Add a capability check after v_total calculation similar to calculate +v_total helper functions. + +Signed-off-by: Jaehyun Chung <jaehyun.chung@amd.com> +Reviewed-by: Anthony Koo <Anthony.Koo@amd.com> +Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +--- + drivers/gpu/drm/amd/display/modules/freesync/freesync.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c +index 65faaf6802e0..9d68cfecd472 100644 +--- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c ++++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c +@@ -232,6 +232,10 @@ static void update_v_total_for_static_ramp( + current_duration_in_us) * (stream->timing.pix_clk_100hz / 10)), + stream->timing.h_total), 1000); + ++ /* v_total cannot be less than nominal */ ++ if (v_total < stream->timing.v_total) ++ v_total = stream->timing.v_total; ++ + in_out_vrr->adjust.v_total_min = v_total; + in_out_vrr->adjust.v_total_max = v_total; + } +-- +2.17.1 + |