aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/5164-drm-amd-display-Program-gamut-remap-as-part-of-strea.patch
diff options
context:
space:
mode:
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.patch85
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, &params);
+ }
+
++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
+