OSDN Git Service

drm/amd/display: remove dc context from transfer function
authorJosip Pavic <Josip.Pavic@amd.com>
Tue, 1 Sep 2020 21:25:38 +0000 (17:25 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 15 Sep 2020 21:52:42 +0000 (17:52 -0400)
[Why]
The ctx field of dc_transfer_func is not always populated and therefore
isn't reliable.

[How]
Remove dc context from dc_transfer_func

Signed-off-by: Josip Pavic <Josip.Pavic@amd.com>
Acked-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_stream.c
drivers/gpu/drm/amd/display/dc/core/dc_surface.c
drivers/gpu/drm/amd/display/dc/dc.h
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_cm_common.c

index 6fef907..d48fd87 100644 (file)
@@ -123,7 +123,6 @@ static bool dc_stream_construct(struct dc_stream_state *stream,
                return false;
        }
        stream->out_transfer_func->type = TF_TYPE_BYPASS;
-       stream->out_transfer_func->ctx = stream->ctx;
 
        stream->stream_id = stream->ctx->dc_stream_id_count;
        stream->ctx->dc_stream_id_count++;
index ea1229a..3d7d274 100644 (file)
@@ -48,22 +48,17 @@ static void dc_plane_construct(struct dc_context *ctx, struct dc_plane_state *pl
        plane_state->in_transfer_func = dc_create_transfer_func();
        if (plane_state->in_transfer_func != NULL) {
                plane_state->in_transfer_func->type = TF_TYPE_BYPASS;
-               plane_state->in_transfer_func->ctx = ctx;
        }
        plane_state->in_shaper_func = dc_create_transfer_func();
        if (plane_state->in_shaper_func != NULL) {
                plane_state->in_shaper_func->type = TF_TYPE_BYPASS;
-               plane_state->in_shaper_func->ctx = ctx;
        }
 
        plane_state->lut3d_func = dc_create_3dlut_func();
-       if (plane_state->lut3d_func != NULL) {
-               plane_state->lut3d_func->ctx = ctx;
-       }
+
        plane_state->blend_tf = dc_create_transfer_func();
        if (plane_state->blend_tf != NULL) {
                plane_state->blend_tf->type = TF_TYPE_BYPASS;
-               plane_state->blend_tf->ctx = ctx;
        }
 
 }
index 9d7d5dd..d9b22d6 100644 (file)
@@ -745,7 +745,6 @@ struct dc_transfer_func {
        enum dc_transfer_func_predefined tf;
        /* FP16 1.0 reference level in nits, default is 80 nits, only for PQ*/
        uint32_t sdr_ref_white_level;
-       struct dc_context *ctx;
        union {
                struct pwl_params pwl;
                struct dc_transfer_func_distributed_points tf_pts;
@@ -772,7 +771,6 @@ struct dc_3dlut {
        struct tetrahedral_params lut_3d;
        struct fixed31_32 hdr_multiplier;
        union dc_3dlut_state state;
-       struct dc_context *ctx;
 };
 /*
  * This structure is filled in by dc_surface_get_status and contains
index 47a39eb..7a00fe5 100644 (file)
@@ -325,8 +325,6 @@ bool cm_helper_translate_curve_to_hw_format(
        if (output_tf == NULL || lut_params == NULL || output_tf->type == TF_TYPE_BYPASS)
                return false;
 
-       PERF_TRACE_CTX(output_tf->ctx);
-
        corner_points = lut_params->corner_points;
        rgb_resulted = lut_params->rgb_resulted;
        hw_points = 0;
@@ -524,8 +522,6 @@ bool cm_helper_translate_curve_to_degamma_hw_format(
        if (output_tf == NULL || lut_params == NULL || output_tf->type == TF_TYPE_BYPASS)
                return false;
 
-       PERF_TRACE_CTX(output_tf->ctx);
-
        corner_points = lut_params->corner_points;
        rgb_resulted = lut_params->rgb_resulted;
        hw_points = 0;
index a139a87..41a1d0e 100644 (file)
@@ -122,8 +122,6 @@ bool cm3_helper_translate_curve_to_hw_format(
        if (output_tf == NULL || lut_params == NULL || output_tf->type == TF_TYPE_BYPASS)
                return false;
 
-       PERF_TRACE_CTX(output_tf->ctx);
-
        corner_points = lut_params->corner_points;
        rgb_resulted = lut_params->rgb_resulted;
        hw_points = 0;
@@ -314,8 +312,6 @@ bool cm3_helper_translate_curve_to_degamma_hw_format(
        if (output_tf == NULL || lut_params == NULL || output_tf->type == TF_TYPE_BYPASS)
                return false;
 
-       PERF_TRACE_CTX(output_tf->ctx);
-
        corner_points = lut_params->corner_points;
        rgb_resulted = lut_params->rgb_resulted;
        hw_points = 0;