drm/amd/display: Fix 3DLUT skipped programming
authorAric Cyr <aric.cyr@amd.com>
Tue, 12 Oct 2021 19:09:54 +0000 (15:09 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 28 Oct 2021 18:26:16 +0000 (14:26 -0400)
We found a compilation error that we thought was caused by the 3DLUT
patch; later on, we figured out the root cause of the problem, but we
already applied the revert in the wrong patch. This commit brings it
back  the 3DLUT fix.

Acked-by: Agustin Gutierrez <agustin.gutierrez@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Aric Cyr <aric.cyr@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 580aa3f..9d33b00 100644 (file)
@@ -2285,6 +2285,9 @@ static enum surface_update_type det_surface_update(const struct dc *dc,
                        update_flags->bits.gamma_change = 1;
        }
 
+       if (u->lut3d_func || u->func_shaper)
+               update_flags->bits.lut_3d = 1;
+
        if (u->hdr_mult.value)
                if (u->hdr_mult.value != u->surface->hdr_mult.value) {
                        update_flags->bits.hdr_mult = 1;
@@ -2298,6 +2301,7 @@ static enum surface_update_type det_surface_update(const struct dc *dc,
 
        if (update_flags->bits.input_csc_change
                        || update_flags->bits.coeff_reduction_change
+                       || update_flags->bits.lut_3d
                        || update_flags->bits.gamma_change
                        || update_flags->bits.gamut_remap_change) {
                type = UPDATE_TYPE_FULL;
index 4cd04a7..1225406 100644 (file)
@@ -940,6 +940,7 @@ union surface_update_flags {
                uint32_t bandwidth_change:1;
                uint32_t clock_change:1;
                uint32_t stereo_format_change:1;
+               uint32_t lut_3d:1;
                uint32_t full_update:1;
        } bits;