提交 7a6c4af6 编写于 作者: H Harry Wentland 提交者: Alex Deucher

drm/amd/display: Roll core_gamma into dc_gamma

Signed-off-by: NHarry Wentland <harry.wentland@amd.com>
Acked-by: NHarry Wentland <Harry.Wentland@amd.com>
Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
上级 0b0aab86
master alk-4.19.24 alk-4.19.30 alk-4.19.34 alk-4.19.36 alk-4.19.43 alk-4.19.48 alk-4.19.57 ck-4.19.67 ck-4.19.81 ck-4.19.91 github/fork/deepanshu1422/fix-typo-in-comment github/fork/haosdent/fix-typo linux-next v4.19.91 v4.19.90 v4.19.89 v4.19.88 v4.19.87 v4.19.86 v4.19.85 v4.19.84 v4.19.83 v4.19.82 v4.19.81 v4.19.80 v4.19.79 v4.19.78 v4.19.77 v4.19.76 v4.19.75 v4.19.74 v4.19.73 v4.19.72 v4.19.71 v4.19.70 v4.19.69 v4.19.68 v4.19.67 v4.19.66 v4.19.65 v4.19.64 v4.19.63 v4.19.62 v4.19.61 v4.19.60 v4.19.59 v4.19.58 v4.19.57 v4.19.56 v4.19.55 v4.19.54 v4.19.53 v4.19.52 v4.19.51 v4.19.50 v4.19.49 v4.19.48 v4.19.47 v4.19.46 v4.19.45 v4.19.44 v4.19.43 v4.19.42 v4.19.41 v4.19.40 v4.19.39 v4.19.38 v4.19.37 v4.19.36 v4.19.35 v4.19.34 v4.19.33 v4.19.32 v4.19.31 v4.19.30 v4.19.29 v4.19.28 v4.19.27 v4.19.26 v4.19.25 v4.19.24 v4.19.23 v4.19.22 v4.19.21 v4.19.20 v4.19.19 v4.19.18 v4.19.17 v4.19.16 v4.19.15 v4.19.14 v4.19.13 v4.19.12 v4.19.11 v4.19.10 v4.19.9 v4.19.8 v4.19.7 v4.19.6 v4.19.5 v4.19.4 v4.19.3 v4.19.2 v4.19.1 v4.19 v4.19-rc8 v4.19-rc7 v4.19-rc6 v4.19-rc5 v4.19-rc4 v4.19-rc3 v4.19-rc2 v4.19-rc1 ck-release-21 ck-release-20 ck-release-19.2 ck-release-19.1 ck-release-19 ck-release-18 ck-release-17.2 ck-release-17.1 ck-release-17 ck-release-16 ck-release-15.1 ck-release-15 ck-release-14 ck-release-13.2 ck-release-13 ck-release-12 ck-release-11 ck-release-10 ck-release-9 ck-release-7 alk-release-15 alk-release-14 alk-release-13.2 alk-release-13 alk-release-12 alk-release-11 alk-release-10 alk-release-9 alk-release-7
无相关合并请求
......@@ -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 &&
......
......@@ -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;
......
......@@ -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);
......
......@@ -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*/
......
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部