diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5164-drm-amd-display-Program-gamut-remap-as-part-of-strea.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/5164-drm-amd-display-Program-gamut-remap-as-part-of-strea.patch | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5164-drm-amd-display-Program-gamut-remap-as-part-of-strea.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5164-drm-amd-display-Program-gamut-remap-as-part-of-strea.patch new file mode 100644 index 00000000..fc9f7f65 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5164-drm-amd-display-Program-gamut-remap-as-part-of-strea.patch @@ -0,0 +1,85 @@ +From ee129f25bd43813bfbc94677c12441ba4513fcfc Mon Sep 17 00:00:00 2001 +From: SivapiriyanKumarasamy <sivapiriyan.kumarasamy@amd.com> +Date: Thu, 26 Jul 2018 14:58:35 -0400 +Subject: [PATCH 5164/5725] drm/amd/display: Program gamut remap as part of + stream update + +Add gamut remap to dc_stream_update struct, and program if set when updating +streams. + +Signed-off-by: SivapiriyanKumarasamy <sivapiriyan.kumarasamy@amd.com> +Reviewed-by: Anthony Koo <Anthony.Koo@amd.com> +Acked-by: Leo Li <sunpeng.li@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc.c | 20 ++++++++++++++++++++ + drivers/gpu/drm/amd/display/dc/dc_stream.h | 8 ++++++++ + 2 files changed, 28 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c +index b7e4800..16beef9 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c +@@ -357,6 +357,23 @@ void dc_stream_set_dither_option(struct dc_stream_state *stream, + opp_program_bit_depth_reduction(pipes->stream_res.opp, ¶ms); + } + ++bool dc_stream_set_gamut_remap(struct dc *dc, const struct dc_stream_state *stream) ++{ ++ int i = 0; ++ bool ret = false; ++ struct pipe_ctx *pipes; ++ ++ for (i = 0; i < MAX_PIPES; i++) { ++ if (dc->current_state->res_ctx.pipe_ctx[i].stream == stream) { ++ pipes = &dc->current_state->res_ctx.pipe_ctx[i]; ++ dc->hwss.program_gamut_remap(pipes); ++ ret = true; ++ } ++ } ++ ++ return ret; ++} ++ + void dc_stream_set_static_screen_events(struct dc *dc, + struct dc_stream_state **streams, + int num_streams, +@@ -1379,6 +1396,9 @@ static void commit_planes_do_stream_update(struct dc *dc, + dc->hwss.update_info_frame(pipe_ctx); + } + ++ if (stream_update->gamut_remap) ++ dc_stream_set_gamut_remap(dc, stream); ++ + /* Full fe update*/ + if (update_type == UPDATE_TYPE_FAST) + continue; +diff --git a/drivers/gpu/drm/amd/display/dc/dc_stream.h b/drivers/gpu/drm/amd/display/dc/dc_stream.h +index 489fb04..c531d80 100644 +--- a/drivers/gpu/drm/amd/display/dc/dc_stream.h ++++ b/drivers/gpu/drm/amd/display/dc/dc_stream.h +@@ -133,6 +133,11 @@ struct dc_stream_update { + struct dc_info_packet *vsc_infopacket; + + bool *dpms_off; ++ ++ struct colorspace_transform *gamut_remap; ++ enum dc_color_space *output_color_space; ++ ++ + }; + + bool dc_is_stream_unchanged( +@@ -298,6 +303,9 @@ void dc_stream_set_static_screen_events(struct dc *dc, + void dc_stream_set_dither_option(struct dc_stream_state *stream, + enum dc_dither_option option); + ++bool dc_stream_set_gamut_remap(struct dc *dc, ++ const struct dc_stream_state *stream); ++ + bool dc_stream_get_crtc_position(struct dc *dc, + struct dc_stream_state **stream, + int num_streams, +-- +2.7.4 + |