aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd
diff options
context:
space:
mode:
authorHarry Wentland <harry.wentland@amd.com>2017-07-24 13:55:26 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-09-26 18:15:36 -0400
commit89899039356a645c1cebe5a454d3577aa1f42bf2 (patch)
treea399022da122d6480137b73ead8b9bdc118d84dc /drivers/gpu/drm/amd
parentd0778ebfd58f5650de17531296ee5ecdde39ba68 (diff)
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>
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r--drivers/gpu/drm/amd/display/dc/core/dc_sink.c43
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/core_types.h3
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 7f0ba7267682..1f7985ad5dba 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 @@
28#include "core_types.h" 28#include "core_types.h"
29 29
30/******************************************************************************* 30/*******************************************************************************
31 * Private definitions
32 ******************************************************************************/
33
34struct sink {
35 struct core_sink protected;
36 int ref_count;
37};
38
39#define DC_SINK_TO_SINK(dc_sink) \
40 container_of(dc_sink, struct sink, protected.public)
41
42/*******************************************************************************
43 * Private functions 31 * Private functions
44 ******************************************************************************/ 32 ******************************************************************************/
45 33
46static void destruct(struct sink *sink) 34static void destruct(struct core_sink *sink)
47{ 35{
48 if (sink->protected.public.dc_container_id) { 36 if (sink->public.dc_container_id) {
49 dm_free(sink->protected.public.dc_container_id); 37 dm_free(sink->public.dc_container_id);
50 sink->protected.public.dc_container_id = NULL; 38 sink->public.dc_container_id = NULL;
51 } 39 }
52} 40}
53 41
54static bool construct(struct sink *sink, const struct dc_sink_init_data *init_params) 42static bool construct(struct core_sink *sink, const struct dc_sink_init_data *init_params)
55{ 43{
56 44
57 struct dc_link *link = init_params->link; 45 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
59 if (!link) 47 if (!link)
60 return false; 48 return false;
61 49
62 sink->protected.public.sink_signal = init_params->sink_signal; 50 sink->public.sink_signal = init_params->sink_signal;
63 sink->protected.link = link; 51 sink->link = link;
64 sink->protected.ctx = link->ctx; 52 sink->ctx = link->ctx;
65 sink->protected.public.dongle_max_pix_clk = init_params->dongle_max_pix_clk; 53 sink->public.dongle_max_pix_clk = init_params->dongle_max_pix_clk;
66 sink->protected.public.converter_disable_audio = 54 sink->public.converter_disable_audio = init_params->converter_disable_audio;
67 init_params->converter_disable_audio; 55 sink->public.dc_container_id = NULL;
68 sink->protected.public.dc_container_id = NULL;
69 56
70 return true; 57 return true;
71} 58}
@@ -76,7 +63,7 @@ static bool construct(struct sink *sink, const struct dc_sink_init_data *init_pa
76 63
77void dc_sink_retain(const struct dc_sink *dc_sink) 64void dc_sink_retain(const struct dc_sink *dc_sink)
78{ 65{
79 struct sink *sink = DC_SINK_TO_SINK(dc_sink); 66 struct core_sink *sink = DC_SINK_TO_CORE(dc_sink);
80 67
81 ASSERT(sink->ref_count > 0); 68 ASSERT(sink->ref_count > 0);
82 ++sink->ref_count; 69 ++sink->ref_count;
@@ -84,7 +71,7 @@ void dc_sink_retain(const struct dc_sink *dc_sink)
84 71
85void dc_sink_release(const struct dc_sink *dc_sink) 72void dc_sink_release(const struct dc_sink *dc_sink)
86{ 73{
87 struct sink *sink = DC_SINK_TO_SINK(dc_sink); 74 struct core_sink *sink = DC_SINK_TO_CORE(dc_sink);
88 75
89 ASSERT(sink->ref_count > 0); 76 ASSERT(sink->ref_count > 0);
90 --sink->ref_count; 77 --sink->ref_count;
@@ -97,7 +84,7 @@ void dc_sink_release(const struct dc_sink *dc_sink)
97 84
98struct dc_sink *dc_sink_create(const struct dc_sink_init_data *init_params) 85struct dc_sink *dc_sink_create(const struct dc_sink_init_data *init_params)
99{ 86{
100 struct sink *sink = dm_alloc(sizeof(*sink)); 87 struct core_sink *sink = dm_alloc(sizeof(*sink));
101 88
102 if (NULL == sink) 89 if (NULL == sink)
103 goto alloc_fail; 90 goto alloc_fail;
@@ -107,7 +94,7 @@ struct dc_sink *dc_sink_create(const struct dc_sink_init_data *init_params)
107 94
108 ++sink->ref_count; 95 ++sink->ref_count;
109 96
110 return &sink->protected.public; 97 return &sink->public;
111 98
112construct_fail: 99construct_fail:
113 dm_free(sink); 100 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 6cdfeeba0faf..eed31a827a90 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 {
94 /* not used for now */ 94 /* not used for now */
95 struct dc_link *link; 95 struct dc_link *link;
96 struct dc_context *ctx; 96 struct dc_context *ctx;
97
98 /* private to dc_sink.c */
99 int ref_count;
97}; 100};
98 101
99/************ link *****************/ 102/************ link *****************/