Start shaper transfer function setup in bypass mode, i.e. tf->type ==
TF_TYPE_BYPASS and let the helper checks set it to a different mode
according to userspace request. It's aligned with current blend setup.

Signed-off-by: Melissa Wen <[email protected]>
---
 .../drm/amd/display/amdgpu_dm/amdgpu_dm_color.c   | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
index 450a1469d0fd..ca9e43e81edf 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
@@ -1666,10 +1666,12 @@ __set_dm_plane_colorop_shaper(struct drm_plane_state 
*plane_state,
        struct dc_transfer_func *tf = &dc_plane_state->cm.shaper_func;
        const struct drm_color_lut32 *shaper_lut;
        struct drm_device *dev = colorop->dev;
-       bool enabled = false;
        u32 shaper_size;
        int i = 0, ret = 0;
 
+       tf->type = TF_TYPE_BYPASS;
+       dc_plane_state->cm.flags.bits.shaper_enable = 0;
+
        /* 1D Curve - SHAPER TF: find state */
        old_colorop = colorop;
        for_each_new_colorop_in_state(state, colorop, new_colorop_state, i) {
@@ -1703,7 +1705,7 @@ __set_dm_plane_colorop_shaper(struct drm_plane_state 
*plane_state,
                ret = __set_output_tf(tf, 0, 0, false);
                if (ret)
                        return ret;
-               enabled = true;
+               dc_plane_state->cm.flags.bits.shaper_enable = 1;
        }
 
        if (lut_state && !lut_state->bypass) {
@@ -1719,17 +1721,10 @@ __set_dm_plane_colorop_shaper(struct drm_plane_state 
*plane_state,
                        ret = __set_output_tf_32(tf, shaper_lut, shaper_size, 
false);
                        if (ret)
                                return ret;
-                       enabled = true;
+                       dc_plane_state->cm.flags.bits.shaper_enable = 1;
                }
        }
 
-       if (!enabled) {
-               tf->type = TF_TYPE_BYPASS;
-               dc_plane_state->cm.flags.bits.shaper_enable = 0;
-       } else {
-               dc_plane_state->cm.flags.bits.shaper_enable = 1;
-       }
-
        return 0;
 }
 
-- 
2.53.0

Reply via email to