drm/amd/powerplay/smu7: enforce minimal VBITimeout (v2)
authorAhzo <Ahzo@tutanota.com>
Mon, 5 Aug 2019 19:14:18 +0000 (21:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 5 Oct 2019 10:48:03 +0000 (12:48 +0200)
[ Upstream commit f659bb6dae58c113805f92822e4c16ddd3156b79 ]

This fixes screen corruption/flickering on 75 Hz displays.

v2: make print statement debug only (Alex)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102646
Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Ahzo <Ahzo@tutanota.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c

index 336fdd8c7db08c2ab01190948e67fa2c3c8ea94c..61141bc3edfe900df21e61a86fc617903354ea34 100644 (file)
@@ -3972,6 +3972,11 @@ static int smu7_program_display_gap(struct pp_hwmgr *hwmgr)
 
        data->frame_time_x2 = frame_time_in_us * 2 / 100;
 
+       if (data->frame_time_x2 < 280) {
+               pr_debug("%s: enforce minimal VBITimeout: %d -> 280\n", __func__, data->frame_time_x2);
+               data->frame_time_x2 = 280;
+       }
+
        display_gap2 = pre_vbi_time_in_us * (ref_clock / 100);
 
        cgs_write_ind_register(hwmgr->device, CGS_IND_REG__SMC, ixCG_DISPLAY_GAP_CNTL2, display_gap2);