From dfdf56ac7ef8f808982000e2159f7eccf72db3b1 Mon Sep 17 00:00:00 2001 From: Harry Wentland Date: Mon, 24 Jul 2017 15:30:17 -0400 Subject: [PATCH 0665/4131] drm/amd/display: Roll core_gamma into dc_gamma Signed-off-by: Harry Wentland Acked-by: Harry Wentland Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/display/dc/core/dc.c | 6 ++---- drivers/gpu/drm/amd/display/dc/core/dc_surface.c | 22 +++++++++------------- drivers/gpu/drm/amd/display/dc/dc.h | 6 +++--- drivers/gpu/drm/amd/display/dc/dc_hw_types.h | 7 +++++++ drivers/gpu/drm/amd/display/dc/inc/core_types.h | 11 ----------- 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 30374ff..d3873ac 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 a8b9515..eded6b7 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 77bd546..5523bb6 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 05f030e..4c5e797 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 43e9ada..5a47d4c 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); -- 2.7.4