Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/display: Fix FreeSync when RGB MPO in use

[WHY]
We should skip programming manual trigger on non-primary planes when MPO is
enabled.

[HOW]
Implement an explicit mechanism for skipping manual trigger programming
for planes that shouldn't cause the frame to end.

Signed-off-by: Aric Cyr <aric.cyr@amd.com>
Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
Acked-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Acked-by: Krunoslav Kovac <Krunoslav.Kovac@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Aric Cyr and committed by
Alex Deucher
41ef8fbb 9c82354e

+4 -1
+2 -1
drivers/gpu/drm/amd/display/dc/core/dc.c
··· 2833 2833 2834 2834 if (pipe_ctx->bottom_pipe || pipe_ctx->next_odm_pipe || 2835 2835 !pipe_ctx->stream || pipe_ctx->stream != stream || 2836 - !pipe_ctx->plane_state->update_flags.bits.addr_update) 2836 + !pipe_ctx->plane_state->update_flags.bits.addr_update || 2837 + pipe_ctx->plane_state->skip_manual_trigger) 2837 2838 continue; 2838 2839 2839 2840 if (pipe_ctx->stream_res.tg->funcs->program_manual_trigger)
+2
drivers/gpu/drm/amd/display/dc/dc.h
··· 907 907 908 908 union surface_update_flags update_flags; 909 909 bool flip_int_enabled; 910 + bool skip_manual_trigger; 911 + 910 912 /* private to DC core */ 911 913 struct dc_plane_status status; 912 914 struct dc_context *ctx;