drm/amd/display: reset transfer_func to NULL on release

Signed-off-by: Yongqiang Sun <yongqiang.sun@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>
This commit is contained in:
Yongqiang Sun 2016-12-21 11:13:48 -05:00 committed by Alex Deucher
parent 0f4e66cd7d
commit 80bd209672
2 changed files with 9 additions and 3 deletions

View File

@ -89,9 +89,11 @@ static bool construct(struct core_stream *stream,
static void destruct(struct core_stream *stream)
{
dc_sink_release(&stream->sink->public);
if (stream->public.out_transfer_func != NULL)
if (stream->public.out_transfer_func != NULL) {
dc_transfer_func_release(
stream->public.out_transfer_func);
stream->public.out_transfer_func = NULL;
}
}
void dc_stream_retain(const struct dc_stream *dc_stream)

View File

@ -71,11 +71,15 @@ static bool construct(struct dc_context *ctx, struct surface *surface)
static void destruct(struct surface *surface)
{
if (surface->protected.public.gamma_correction != NULL)
if (surface->protected.public.gamma_correction != NULL) {
dc_gamma_release(surface->protected.public.gamma_correction);
if (surface->protected.public.in_transfer_func != NULL)
surface->protected.public.gamma_correction = NULL;
}
if (surface->protected.public.in_transfer_func != NULL) {
dc_transfer_func_release(
surface->protected.public.in_transfer_func);
surface->protected.public.in_transfer_func = NULL;
}
}
/*******************************************************************************