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
