aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/0072-drm-amd-display-Refactor-to-move-gamma-correction-to.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0072-drm-amd-display-Refactor-to-move-gamma-correction-to.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/0072-drm-amd-display-Refactor-to-move-gamma-correction-to.patch155
1 files changed, 0 insertions, 155 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0072-drm-amd-display-Refactor-to-move-gamma-correction-to.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0072-drm-amd-display-Refactor-to-move-gamma-correction-to.patch
deleted file mode 100644
index 86c94b91..00000000
--- a/common/recipes-kernel/linux/linux-yocto-4.14.71/0072-drm-amd-display-Refactor-to-move-gamma-correction-to.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From d2e6be5c4c3414043a20cd5b1820a78c37e3dedd Mon Sep 17 00:00:00 2001
-From: Anthony Koo <Anthony.Koo@amd.com>
-Date: Fri, 16 Dec 2016 10:43:21 -0500
-Subject: [PATCH 0072/4131] drm/amd/display: Refactor to move gamma correction
- to module
-
-Refactor part 4 - Moving input gamma correction programming into color module
-
-DM will translate to dc_gamma structure, but programming will be moved into
-the color module. Later, this will allow gamma correction to be added on top of
-in/out transfer function curves.
-
-Signed-off-by: Anthony Koo <anthony.koo@amd.com>
-Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
-Acked-by: Harry Wentland <Harry.Wentland@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/display/modules/color/color.c | 77 ++++++++++++++++++++++
- .../gpu/drm/amd/display/modules/inc/mod_color.h | 4 ++
- 2 files changed, 81 insertions(+)
-
-diff --git a/drivers/gpu/drm/amd/display/modules/color/color.c b/drivers/gpu/drm/amd/display/modules/color/color.c
-index 0610b82..6613ff9 100644
---- a/drivers/gpu/drm/amd/display/modules/color/color.c
-+++ b/drivers/gpu/drm/amd/display/modules/color/color.c
-@@ -69,6 +69,7 @@ struct color_state {
- struct color_range saturation;
- struct color_range brightness;
- struct color_range hue;
-+ struct dc_gamma *gamma;
- enum dc_quantization_range preferred_quantization_range;
- };
-
-@@ -1265,6 +1266,26 @@ static void calculate_csc_matrix(struct core_color *core_color,
- }
- }
-
-+static struct dc_surface *dc_stream_to_surface_from_pipe_ctx(
-+ struct core_color *core_color,
-+ const struct dc_stream *stream)
-+{
-+ int i;
-+ struct core_dc *core_dc = DC_TO_CORE(core_color->dc);
-+ struct core_stream *core_stream = DC_STREAM_TO_CORE(stream);
-+ struct dc_surface *out_surface = NULL;
-+
-+ for (i = 0; i < MAX_PIPES; i++) {
-+ if (core_dc->current_context->res_ctx.pipe_ctx[i].stream
-+ == core_stream) {
-+ out_surface = &core_dc->current_context->res_ctx.
-+ pipe_ctx[i].surface->public;
-+ break;
-+ }
-+ }
-+ return out_surface;
-+}
-+
- struct mod_color *mod_color_create(struct dc *dc)
- {
- int i = 0;
-@@ -1369,6 +1390,10 @@ void mod_color_destroy(struct mod_color *mod_color)
- struct core_color *core_color =
- MOD_COLOR_TO_CORE(mod_color);
-
-+ for (i = 0; i < core_color->num_sinks; i++)
-+ if (core_color->state[i].gamma)
-+ dc_gamma_release(core_color->state[i].gamma);
-+
- dm_free(core_color->state);
-
- for (i = 0; i < core_color->num_sinks; i++)
-@@ -1552,6 +1577,9 @@ bool mod_color_remove_sink(struct mod_color *mod_color,
-
- for (i = 0; i < core_color->num_sinks; i++) {
- if (core_color->caps[i].sink == sink) {
-+ if (core_color->state[i].gamma)
-+ dc_gamma_release(core_color->state[i].gamma);
-+
- /* To remove this sink, shift everything after down */
- for (j = i; j < core_color->num_sinks - 1; j++) {
- core_color->caps[j].sink =
-@@ -2184,6 +2212,55 @@ bool mod_color_set_saturation(struct mod_color *mod_color,
- return true;
- }
-
-+bool mod_color_set_input_gamma_correction(struct mod_color *mod_color,
-+ const struct dc_stream **streams, int num_streams,
-+ struct dc_gamma *gamma)
-+{
-+ struct core_color *core_color = MOD_COLOR_TO_CORE(mod_color);
-+ unsigned int stream_index, sink_index;
-+
-+ for (stream_index = 0; stream_index < num_streams; stream_index++) {
-+ sink_index = sink_index_from_sink(core_color,
-+ streams[stream_index]->sink);
-+
-+ struct dc_surface *surface =
-+ dc_stream_to_surface_from_pipe_ctx(core_color,
-+ streams[stream_index]);
-+
-+ if (surface != NULL) {
-+ struct dc_transfer_func *input_tf =
-+ dc_create_transfer_func(core_color->dc);
-+ struct dc_surface_update updates = {0};
-+
-+ if (input_tf != NULL) {
-+ input_tf->type = TF_TYPE_PREDEFINED;
-+ input_tf->tf = TRANSFER_FUNCTION_SRGB;
-+ }
-+
-+ if (core_color->state[sink_index].gamma != gamma) {
-+ if (core_color->state[sink_index].gamma)
-+ dc_gamma_release(
-+ core_color->state[sink_index].
-+ gamma);
-+
-+ dc_gamma_retain(gamma);
-+ core_color->state[sink_index].gamma = gamma;
-+ }
-+
-+ updates.surface = surface;
-+ updates.gamma = gamma;
-+ updates.in_transfer_func = input_tf;
-+ dc_update_surfaces_for_target(core_color->dc, &updates,
-+ 1, NULL);
-+
-+ if (input_tf != NULL)
-+ dc_transfer_func_release(input_tf);
-+ }
-+ }
-+
-+ return true;
-+}
-+
- bool mod_color_persist_user_preferred_quantization_range(
- struct mod_color *mod_color,
- const struct dc_sink *sink,
-diff --git a/drivers/gpu/drm/amd/display/modules/inc/mod_color.h b/drivers/gpu/drm/amd/display/modules/inc/mod_color.h
-index 787c2c0..fbf9081 100644
---- a/drivers/gpu/drm/amd/display/modules/inc/mod_color.h
-+++ b/drivers/gpu/drm/amd/display/modules/inc/mod_color.h
-@@ -168,6 +168,10 @@ bool mod_color_set_saturation(struct mod_color *mod_color,
- const struct dc_stream **streams, int num_streams,
- int saturation_value);
-
-+bool mod_color_set_input_gamma_correction(struct mod_color *mod_color,
-+ const struct dc_stream **streams, int num_streams,
-+ struct dc_gamma *gamma);
-+
- bool mod_color_persist_user_preferred_quantization_range(
- struct mod_color *mod_color,
- const struct dc_sink *sink,
---
-2.7.4
-