diff options
author | Sylvia Tsai <sylvia.tsai@amd.com> | 2017-04-21 15:29:55 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-09-26 18:06:36 -0400 |
commit | 94267b3df7ee00f21fa0ff7d618ca7e0574db5ed (patch) | |
tree | b8f8fce62e600c1e7130cc4c8a2d803705b2c3c3 /drivers/gpu/drm/amd/display/modules/freesync/freesync.c | |
parent | d27383a2b5719be60ac86deae30e89755f868a07 (diff) |
drm/amd/display: PSR Refactor
- Refacotr PSR to follow correct module pattern
- fix eDP only working on sink index 0.
Signed-off-by: Sylvia Tsai <sylvia.tsai@amd.com>
Acked-by: Harry Wentland <Harry.Wentland@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/modules/freesync/freesync.c')
-rw-r--r-- | drivers/gpu/drm/amd/display/modules/freesync/freesync.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c index 5c6de723da5d..78b4f28d862c 100644 --- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c +++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c | |||
@@ -264,10 +264,10 @@ bool mod_freesync_add_stream(struct mod_freesync *mod_freesync, | |||
264 | enable_for_video = false; | 264 | enable_for_video = false; |
265 | } | 265 | } |
266 | 266 | ||
267 | temp = core_stream->public.timing.pix_clk_khz; | 267 | temp = stream->timing.pix_clk_khz; |
268 | temp *= 1000ULL * 1000ULL * 1000ULL; | 268 | temp *= 1000ULL * 1000ULL * 1000ULL; |
269 | temp = div_u64(temp, core_stream->public.timing.h_total); | 269 | temp = div_u64(temp, stream->timing.h_total); |
270 | temp = div_u64(temp, core_stream->public.timing.v_total); | 270 | temp = div_u64(temp, stream->timing.v_total); |
271 | 271 | ||
272 | nom_refresh_rate_micro_hz = (unsigned int) temp; | 272 | nom_refresh_rate_micro_hz = (unsigned int) temp; |
273 | 273 | ||
@@ -657,6 +657,7 @@ void mod_freesync_handle_v_update(struct mod_freesync *mod_freesync, | |||
657 | unsigned int min_frame_duration_in_ns, vmax, vmin = 0; | 657 | unsigned int min_frame_duration_in_ns, vmax, vmin = 0; |
658 | struct freesync_state *state; | 658 | struct freesync_state *state; |
659 | struct core_freesync *core_freesync = NULL; | 659 | struct core_freesync *core_freesync = NULL; |
660 | struct dc_static_screen_events triggers = {0}; | ||
660 | 661 | ||
661 | if (mod_freesync == NULL) | 662 | if (mod_freesync == NULL) |
662 | return; | 663 | return; |
@@ -749,6 +750,13 @@ void mod_freesync_handle_v_update(struct mod_freesync *mod_freesync, | |||
749 | core_freesync->dc, streams, | 750 | core_freesync->dc, streams, |
750 | num_streams, v_total, | 751 | num_streams, v_total, |
751 | v_total); | 752 | v_total); |
753 | |||
754 | triggers.overlay_update = true; | ||
755 | triggers.surface_update = true; | ||
756 | |||
757 | core_freesync->dc->stream_funcs.set_static_screen_events( | ||
758 | core_freesync->dc, streams, num_streams, | ||
759 | &triggers); | ||
752 | } | 760 | } |
753 | } | 761 | } |
754 | 762 | ||