On 8/19/26 10:00, Melissa Wen wrote:
DCN3.01 presents the same banding issue as reported in the link below,

This affects more than just DCN301 as below:

drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_init.c: .set_blend_lut = dcn30_set_blend_lut, drivers/gpu/drm/amd/display/dc/hwss/dcn301/dcn301_init.c: .set_blend_lut = dcn30_set_blend_lut, drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_init.c: .set_blend_lut = dcn30_set_blend_lut, drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_init.c: .set_blend_lut = dcn30_set_blend_lut,

but the previous fix doesn't cover this hw. Change the helper for
degamma/blend curves for DCN30-based family.

Link: https://lore.kernel.org/amd-gfx/[email protected]/
Fixes: 3719314af322 ("drm/amd/display: use a separate helper to translate degamma 
curves")
Signed-off-by: Melissa Wen <[email protected]>
---
  .../gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c    | 10 ++++------
  1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c 
b/drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
index cb163902e12e..6980f622db0a 100644
--- a/drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c
@@ -243,10 +243,9 @@ bool dcn30_set_blend_lut(
        if (plane_state->cm.blend_func.type == TF_TYPE_HWPWL)
                blend_lut = &plane_state->cm.blend_func.pwl;
        else if (plane_state->cm.blend_func.type == TF_TYPE_DISTRIBUTED_POINTS) 
{
-               result = 
cm3_helper_translate_curve_to_hw_format(plane_state->ctx,
+               result = cm3_helper_translate_curve_to_degamma_hw_format(
                                &plane_state->cm.blend_func,
-                               &dpp_base->regamma_params,
-                               false);
+                               &dpp_base->regamma_params);
                if (!result)
                        return result;
@@ -337,9 +336,8 @@ bool dcn30_set_input_transfer_func(struct dc *dc,
        if (plane_state->in_transfer_func.type == TF_TYPE_HWPWL)
                params = &plane_state->in_transfer_func.pwl;
        else if (plane_state->in_transfer_func.type == TF_TYPE_DISTRIBUTED_POINTS 
&&
-               cm3_helper_translate_curve_to_hw_format(plane_state->ctx,
-                                                       
&plane_state->in_transfer_func,
-                                                       
&dpp_base->degamma_params, false))
+               
cm3_helper_translate_curve_to_degamma_hw_format(&plane_state->in_transfer_func,
+                                                               
&dpp_base->degamma_params))
                params = &dpp_base->degamma_params;
result = dpp_base->funcs->dpp_program_gamcor_lut(dpp_base, params);

Reply via email to