drm/amd/display: csc updates require FULL update
authorAnthony Koo <Anthony.Koo@amd.com>
Thu, 29 Mar 2018 15:23:37 +0000 (11:23 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 11 Apr 2018 18:08:10 +0000 (13:08 -0500)
Signed-off-by: Anthony Koo <Anthony.Koo@amd.com>
Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc.c
drivers/gpu/drm/amd/display/dc/dc.h

index b331d9e78cdb55e500c258554a9951f838a4c879..8f09f3ab0c2919ca69ec26c97036c6250a6f2ff0 100644 (file)
@@ -1154,12 +1154,20 @@ static enum surface_update_type det_surface_update(const struct dc *dc,
        if (u->input_csc_color_matrix)
                update_flags->bits.input_csc_change = 1;
 
-       if (update_flags->bits.in_transfer_func_change
-                       || update_flags->bits.input_csc_change) {
+       if (u->coeff_reduction_factor)
+               update_flags->bits.coeff_reduction_change = 1;
+
+       if (update_flags->bits.in_transfer_func_change) {
                type = UPDATE_TYPE_MED;
                elevate_update_type(&overall_type, type);
        }
 
+       if (update_flags->bits.input_csc_change
+                       || update_flags->bits.coeff_reduction_change) {
+               type = UPDATE_TYPE_FULL;
+               elevate_update_type(&overall_type, type);
+       }
+
        return overall_type;
 }
 
index 63817ed56c1189c3c2ac049a178d425150b1e59f..7d1a3c5d1b1064f4fb4c68a792a9b42fc873edf4 100644 (file)
@@ -429,6 +429,7 @@ union surface_update_flags {
                uint32_t position_change:1;
                uint32_t in_transfer_func_change:1;
                uint32_t input_csc_change:1;
+               uint32_t coeff_reduction_change:1;
                uint32_t output_tf_change:1;
                uint32_t pixel_format_change:1;