drm/amd/display: fix freesync not working on raven
authorCorbin McElhanney <corbin.mcelhanney@amd.com>
Tue, 9 May 2017 16:00:24 +0000 (12:00 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 26 Sep 2017 22:07:05 +0000 (18:07 -0400)
Signed-off-by: Corbin McElhanney <corbin.mcelhanney@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Harry Wentland <Harry.Wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/modules/freesync/freesync.c

index 05a086c..9a073bc 100644 (file)
@@ -1130,6 +1130,7 @@ void mod_freesync_notify_mode_change(struct mod_freesync *mod_freesync,
        unsigned int stream_index, map_index;
        struct freesync_state *state;
        struct core_freesync *core_freesync = NULL;
+       struct dc_static_screen_events triggers = {0};
 
        if (mod_freesync == NULL)
                return;
@@ -1157,6 +1158,7 @@ void mod_freesync_notify_mode_change(struct mod_freesync *mod_freesync,
                        /* Update the stream */
                        update_stream(core_freesync, streams[stream_index]);
 
+
                        /* Calculate vmin/vmax and refresh rate for
                         * current mode
                         */
@@ -1164,6 +1166,14 @@ void mod_freesync_notify_mode_change(struct mod_freesync *mod_freesync,
                                core_freesync->map[map_index].caps->
                                min_refresh_in_micro_hz,
                                state->nominal_refresh_rate_in_micro_hz);
+
+                       /* Update mask */
+                       triggers.overlay_update = true;
+                       triggers.surface_update = true;
+
+                       core_freesync->dc->stream_funcs.set_static_screen_events(
+                               core_freesync->dc, streams, num_streams,
+                               &triggers);
                }
        }