drm/amd/display: Change DCN2 vupdate start programming
authorEryk Brol <eryk.brol@amd.com>
Mon, 15 Apr 2019 20:09:01 +0000 (16:09 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Sat, 22 Jun 2019 14:34:11 +0000 (09:34 -0500)
[Why]
In order to ensure that incoming flips are latched and
complete immediately, we need to program the vupdate
interrupt to come during the back porch of each frame.

[How]
Program the vupdate start_line to be in the back porch
like it's done for DCN1.

Signed-off-by: Eryk Brol <eryk.brol@amd.com>
Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c

index e7580e6e0fb6d9cdcc9f52950d729b43dbabcefa..f9eae47f7be3cae82a86ed3264c25a1e64ee8034 100644 (file)
@@ -1704,13 +1704,10 @@ void dcn20_unblank_stream(struct pipe_ctx *pipe_ctx,
 void dcn20_setup_vupdate_interrupt(struct pipe_ctx *pipe_ctx)
 {
        struct timing_generator *tg = pipe_ctx->stream_res.tg;
-       int start_position = get_vupdate_offset_from_vsync(pipe_ctx);
-       uint32_t start_line;
+       int start_line = get_vupdate_offset_from_vsync(pipe_ctx);
 
-       if (start_position < 0)
-               start_line = pipe_ctx->stream->timing.v_total + start_position - 1;
-       else
-               start_line = start_position;
+       if (start_line < 0)
+               start_line = 0;
 
        if (tg->funcs->setup_vertical_interrupt2)
                tg->funcs->setup_vertical_interrupt2(tg, start_line);