const struct drm_connector *connector)
 {
        struct dc_crtc_timing *timing_out = &stream->timing;
-       struct dc_transfer_func *tf = dc_create_transfer_func();
 
        memset(timing_out, 0, sizeof(struct dc_crtc_timing));
 
 
        stream->output_color_space = get_output_color_space(timing_out);
 
-       tf->type = TF_TYPE_PREDEFINED;
-       tf->tf = TRANSFER_FUNCTION_SRGB;
-       stream->out_transfer_func = tf;
+       stream->out_transfer_func->type = TF_TYPE_PREDEFINED;
+       stream->out_transfer_func->tf = TRANSFER_FUNCTION_SRGB;
 }
 
 static void fill_audio_info(struct audio_info *audio_info,
 
        stream->status.link = stream->sink->link;
 
        update_stream_signal(stream);
+
+       stream->out_transfer_func = dc_create_transfer_func();
+       stream->out_transfer_func->type = TF_TYPE_BYPASS;
 }
 
 static void destruct(struct dc_stream_state *stream)
 {
        dc_sink_release(stream->sink);
        if (stream->out_transfer_func != NULL) {
-               dc_transfer_func_release(
-                               stream->out_transfer_func);
+               dc_transfer_func_release(stream->out_transfer_func);
                stream->out_transfer_func = NULL;
        }
 }
 
 static void construct(struct dc_context *ctx, struct dc_plane_state *plane_state)
 {
        plane_state->ctx = ctx;
+
+       plane_state->gamma_correction = dc_create_gamma();
+       plane_state->gamma_correction->is_identity = true;
+
+       plane_state->in_transfer_func = dc_create_transfer_func();
+       plane_state->in_transfer_func->type = TF_TYPE_BYPASS;
 }
 
 static void destruct(struct dc_plane_state *plane_state)
        kref_put(&tf->refcount, dc_transfer_func_free);
 }
 
-struct dc_transfer_func *dc_create_transfer_func(void)
+struct dc_transfer_func *dc_create_transfer_func()
 {
        struct dc_transfer_func *tf = kzalloc(sizeof(*tf), GFP_KERNEL);
 
 
                tf = plane_state->in_transfer_func;
 
        if (plane_state->gamma_correction &&
-               plane_state->gamma_correction->is_identity)
-               dpp_base->funcs->dpp_set_degamma(dpp_base, IPP_DEGAMMA_MODE_BYPASS);
-       else if (plane_state->gamma_correction && dce_use_lut(plane_state->format))
+               !plane_state->gamma_correction->is_identity
+                       && dce_use_lut(plane_state->format))
                dpp_base->funcs->dpp_program_input_lut(dpp_base, plane_state->gamma_correction);
 
        if (tf == NULL)