diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3099-drm-amd-display-Prevent-master-programming-in-multis.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3099-drm-amd-display-Prevent-master-programming-in-multis.patch | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3099-drm-amd-display-Prevent-master-programming-in-multis.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3099-drm-amd-display-Prevent-master-programming-in-multis.patch new file mode 100644 index 00000000..ab9c344d --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3099-drm-amd-display-Prevent-master-programming-in-multis.patch @@ -0,0 +1,65 @@ +From fe39dd485769a5f7b5c5dfd3058c97a35332cbad Mon Sep 17 00:00:00 2001 +From: Mikita Lipski <mikita.lipski@amd.com> +Date: Mon, 18 Dec 2017 10:34:56 -0500 +Subject: [PATCH 3099/4131] drm/amd/display: Prevent master programming in + multisync + +Verify that the stream is master - and program only the slave displays + +Signed-off-by: Mikita Lipski <mikita.lipski@amd.com> +Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +--- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +- + drivers/gpu/drm/amd/display/dc/core/dc.c | 4 +++- + drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 2 +- + 3 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +index 98bba82..90a6c98 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -2515,7 +2515,7 @@ static void set_master_stream(struct dc_stream_state *stream_set[], + } + } + for (j = 0; j < stream_count; j++) { +- if (stream_set[j] && j != master_stream) ++ if (stream_set[j]) + stream_set[j]->triggered_crtc_reset.event_source = stream_set[master_stream]; + } + } +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c +index 6aef36b..a744dee 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c +@@ -521,11 +521,13 @@ static void enable_timing_multisync( + if (!ctx->res_ctx.pipe_ctx[i].stream || + !ctx->res_ctx.pipe_ctx[i].stream->triggered_crtc_reset.enabled) + continue; ++ if (ctx->res_ctx.pipe_ctx[i].stream == ctx->res_ctx.pipe_ctx[i].stream->triggered_crtc_reset.event_source) ++ continue; + multisync_pipes[multisync_count] = &ctx->res_ctx.pipe_ctx[i]; + multisync_count++; + } + +- if (multisync_count > 1) { ++ if (multisync_count > 0) { + dc->hwss.enable_per_frame_crtc_position_reset( + dc, multisync_count, multisync_pipes); + } +diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +index 52e31e7..0f5a22e 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c ++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +@@ -1097,7 +1097,7 @@ static void dcn10_enable_per_frame_crtc_position_reset( + + DC_SYNC_INFO("Waiting for trigger\n"); + +- for (i = 1; i < group_size; i++) ++ for (i = 0; i < group_size; i++) + wait_for_reset_trigger_to_occur(dc_ctx, grouped_pipes[i]->stream_res.tg); + + DC_SYNC_INFO("Multi-display sync is complete\n"); +-- +2.7.4 + |