aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0660-drm-amd-display-Roll-sink-struct-into-core_sink.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0660-drm-amd-display-Roll-sink-struct-into-core_sink.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0660-drm-amd-display-Roll-sink-struct-into-core_sink.patch127
1 files changed, 127 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0660-drm-amd-display-Roll-sink-struct-into-core_sink.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0660-drm-amd-display-Roll-sink-struct-into-core_sink.patch
new file mode 100644
index 00000000..3ed17158
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0660-drm-amd-display-Roll-sink-struct-into-core_sink.patch
@@ -0,0 +1,127 @@
+From b5c0a3fcdbf4e629e39bc55c6541c3a097ff26fe Mon Sep 17 00:00:00 2001
+From: Harry Wentland <harry.wentland@amd.com>
+Date: Mon, 24 Jul 2017 13:55:26 -0400
+Subject: [PATCH 0660/4131] drm/amd/display: Roll sink struct into core_sink
+
+Signed-off-by: Harry Wentland <harry.wentland@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Harry Wentland <Harry.Wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc_sink.c | 43 +++++++++----------------
+ drivers/gpu/drm/amd/display/dc/inc/core_types.h | 3 ++
+ 2 files changed, 18 insertions(+), 28 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_sink.c b/drivers/gpu/drm/amd/display/dc/core/dc_sink.c
+index 7f0ba72..1f7985a 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_sink.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_sink.c
+@@ -28,30 +28,18 @@
+ #include "core_types.h"
+
+ /*******************************************************************************
+- * Private definitions
+- ******************************************************************************/
+-
+-struct sink {
+- struct core_sink protected;
+- int ref_count;
+-};
+-
+-#define DC_SINK_TO_SINK(dc_sink) \
+- container_of(dc_sink, struct sink, protected.public)
+-
+-/*******************************************************************************
+ * Private functions
+ ******************************************************************************/
+
+-static void destruct(struct sink *sink)
++static void destruct(struct core_sink *sink)
+ {
+- if (sink->protected.public.dc_container_id) {
+- dm_free(sink->protected.public.dc_container_id);
+- sink->protected.public.dc_container_id = NULL;
++ if (sink->public.dc_container_id) {
++ dm_free(sink->public.dc_container_id);
++ sink->public.dc_container_id = NULL;
+ }
+ }
+
+-static bool construct(struct sink *sink, const struct dc_sink_init_data *init_params)
++static bool construct(struct core_sink *sink, const struct dc_sink_init_data *init_params)
+ {
+
+ struct dc_link *link = init_params->link;
+@@ -59,13 +47,12 @@ static bool construct(struct sink *sink, const struct dc_sink_init_data *init_pa
+ if (!link)
+ return false;
+
+- sink->protected.public.sink_signal = init_params->sink_signal;
+- sink->protected.link = link;
+- sink->protected.ctx = link->ctx;
+- sink->protected.public.dongle_max_pix_clk = init_params->dongle_max_pix_clk;
+- sink->protected.public.converter_disable_audio =
+- init_params->converter_disable_audio;
+- sink->protected.public.dc_container_id = NULL;
++ sink->public.sink_signal = init_params->sink_signal;
++ sink->link = link;
++ sink->ctx = link->ctx;
++ sink->public.dongle_max_pix_clk = init_params->dongle_max_pix_clk;
++ sink->public.converter_disable_audio = init_params->converter_disable_audio;
++ sink->public.dc_container_id = NULL;
+
+ return true;
+ }
+@@ -76,7 +63,7 @@ static bool construct(struct sink *sink, const struct dc_sink_init_data *init_pa
+
+ void dc_sink_retain(const struct dc_sink *dc_sink)
+ {
+- struct sink *sink = DC_SINK_TO_SINK(dc_sink);
++ struct core_sink *sink = DC_SINK_TO_CORE(dc_sink);
+
+ ASSERT(sink->ref_count > 0);
+ ++sink->ref_count;
+@@ -84,7 +71,7 @@ void dc_sink_retain(const struct dc_sink *dc_sink)
+
+ void dc_sink_release(const struct dc_sink *dc_sink)
+ {
+- struct sink *sink = DC_SINK_TO_SINK(dc_sink);
++ struct core_sink *sink = DC_SINK_TO_CORE(dc_sink);
+
+ ASSERT(sink->ref_count > 0);
+ --sink->ref_count;
+@@ -97,7 +84,7 @@ void dc_sink_release(const struct dc_sink *dc_sink)
+
+ struct dc_sink *dc_sink_create(const struct dc_sink_init_data *init_params)
+ {
+- struct sink *sink = dm_alloc(sizeof(*sink));
++ struct core_sink *sink = dm_alloc(sizeof(*sink));
+
+ if (NULL == sink)
+ goto alloc_fail;
+@@ -107,7 +94,7 @@ struct dc_sink *dc_sink_create(const struct dc_sink_init_data *init_params)
+
+ ++sink->ref_count;
+
+- return &sink->protected.public;
++ return &sink->public;
+
+ construct_fail:
+ dm_free(sink);
+diff --git a/drivers/gpu/drm/amd/display/dc/inc/core_types.h b/drivers/gpu/drm/amd/display/dc/inc/core_types.h
+index 6cdfeeb..eed31a8 100644
+--- a/drivers/gpu/drm/amd/display/dc/inc/core_types.h
++++ b/drivers/gpu/drm/amd/display/dc/inc/core_types.h
+@@ -94,6 +94,9 @@ struct core_sink {
+ /* not used for now */
+ struct dc_link *link;
+ struct dc_context *ctx;
++
++ /* private to dc_sink.c */
++ int ref_count;
+ };
+
+ /************ link *****************/
+--
+2.7.4
+