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);