summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarry Wentland <harry.wentland@amd.com>2017-07-24 15:30:17 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-09-26 18:15:38 -0400
commit7a6c4af6bf41516cc9e12d83cc8fcebfdd8be01c (patch)
tree6ffbb71b300a64ebe47fb08b89e72fded03be310
parent0b0aab86d51ee63d521f0d96ff4dfe1d6252f9b2 (diff)
drm/amd/display: Roll core_gamma into dc_gamma
Signed-off-by: Harry Wentland <harry.wentland@amd.com> Acked-by: Harry Wentland <Harry.Wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/display/dc/core/dc.c6
-rw-r--r--drivers/gpu/drm/amd/display/dc/core/dc_surface.c22
-rw-r--r--drivers/gpu/drm/amd/display/dc/dc.h6
-rw-r--r--drivers/gpu/drm/amd/display/dc/dc_hw_types.h7
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/core_types.h11
5 files changed, 21 insertions, 31 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
index 30374ffaae0b..d3873ac45cf3 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -1500,12 +1500,10 @@ void dc_update_surfaces_and_stream(struct dc *dc,
if (srf_updates[i].gamma &&
srf_updates[i].gamma != surface->gamma_correction) {
if (surface->gamma_correction != NULL)
- dc_gamma_release(&surface->
- gamma_correction);
+ dc_gamma_release(&surface->gamma_correction);
dc_gamma_retain(srf_updates[i].gamma);
- surface->gamma_correction =
- srf_updates[i].gamma;
+ surface->gamma_correction = srf_updates[i].gamma;
}
if (srf_updates[i].in_transfer_func &&
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_surface.c b/drivers/gpu/drm/amd/display/dc/core/dc_surface.c
index a8b9515fd367..eded6b7da97d 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_surface.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_surface.c
@@ -137,37 +137,33 @@ void dc_surface_release(struct dc_surface *surface)
}
}
-void dc_gamma_retain(const struct dc_gamma *dc_gamma)
+void dc_gamma_retain(struct dc_gamma *gamma)
{
- struct core_gamma *gamma = DC_GAMMA_TO_CORE(dc_gamma);
-
ASSERT(gamma->ref_count > 0);
++gamma->ref_count;
}
-void dc_gamma_release(const struct dc_gamma **dc_gamma)
+void dc_gamma_release(struct dc_gamma **gamma)
{
- struct core_gamma *gamma = DC_GAMMA_TO_CORE(*dc_gamma);
-
- ASSERT(gamma->ref_count > 0);
- --gamma->ref_count;
+ ASSERT((*gamma)->ref_count > 0);
+ --(*gamma)->ref_count;
- if (gamma->ref_count == 0)
- dm_free(gamma);
+ if ((*gamma)->ref_count == 0)
+ dm_free((*gamma));
- *dc_gamma = NULL;
+ *gamma = NULL;
}
struct dc_gamma *dc_create_gamma()
{
- struct core_gamma *gamma = dm_alloc(sizeof(*gamma));
+ struct dc_gamma *gamma = dm_alloc(sizeof(*gamma));
if (gamma == NULL)
goto alloc_fail;
++gamma->ref_count;
- return &gamma->public;
+ return gamma;
alloc_fail:
return NULL;
diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
index 77bd54659a8b..5523bb68f4e8 100644
--- a/drivers/gpu/drm/amd/display/dc/dc.h
+++ b/drivers/gpu/drm/amd/display/dc/dc.h
@@ -326,7 +326,7 @@ struct dc_surface {
struct dc_plane_dcc_param dcc;
struct dc_hdr_static_metadata hdr_static_ctx;
- const struct dc_gamma *gamma_correction;
+ struct dc_gamma *gamma_correction;
struct dc_transfer_func *in_transfer_func;
enum dc_color_space color_space;
@@ -394,8 +394,8 @@ const struct dc_surface_status *dc_surface_get_status(
void dc_surface_retain(struct dc_surface *dc_surface);
void dc_surface_release(struct dc_surface *dc_surface);
-void dc_gamma_retain(const struct dc_gamma *dc_gamma);
-void dc_gamma_release(const struct dc_gamma **dc_gamma);
+void dc_gamma_retain(struct dc_gamma *dc_gamma);
+void dc_gamma_release(struct dc_gamma **dc_gamma);
struct dc_gamma *dc_create_gamma(void);
void dc_transfer_func_retain(struct dc_transfer_func *dc_tf);
diff --git a/drivers/gpu/drm/amd/display/dc/dc_hw_types.h b/drivers/gpu/drm/amd/display/dc/dc_hw_types.h
index 05f030ee8cf0..4c5e797da5b1 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_hw_types.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_hw_types.h
@@ -415,6 +415,13 @@ struct dc_gamma {
uint16_t red[INPUT_LUT_ENTRIES];
uint16_t green[INPUT_LUT_ENTRIES];
uint16_t blue[INPUT_LUT_ENTRIES];
+
+ /* private to DC core */
+ struct dc_context *ctx;
+
+ /* private to dc_surface.c */
+ int ref_count;
+
};
/* Used by both ipp amd opp functions*/
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 43e9ada278d3..5a47d4c94df6 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/core_types.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/core_types.h
@@ -40,17 +40,6 @@ struct core_stream;
#define MAX_CLOCK_SOURCES 7
-#define DC_GAMMA_TO_CORE(dc_gamma) \
- container_of(dc_gamma, struct core_gamma, public)
-
-struct core_gamma {
- struct dc_gamma public;
- struct dc_context *ctx;
-
- /* private to dc_surface.c */
- int ref_count;
-};
-
void enable_surface_flip_reporting(struct dc_surface *dc_surface,
uint32_t controller_id);