drm/amd/powerplay/smu7: enforce minimal VBITimeout (v2)
authorAhzo <Ahzo@tutanota.com>
Mon, 5 Aug 2019 19:14:18 +0000 (21:14 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 15 Aug 2019 15:59:12 +0000 (10:59 -0500)
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>
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c

index 487aeee1cf8a5350446cbeeaf4eb2c644ede8716..3c1084de5d59fe8ed36ab0aa98b14965139eeab9 100644 (file)
@@ -4068,6 +4068,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);