Change-Id: Ibf1042eaf53c350df3344deaafc4d1629941c129 Signed-off-by: Harry Wentland <harry.wentland at amd.com> Acked-by: Harry Wentland <Harry.Wentland at amd.com> --- 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 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); -- 2.11.0