From 606dc2492b8ca657118b4c4b1443a20a2bfa9a7c Mon Sep 17 00:00:00 2001 From: Ovidiu Bunea Date: Wed, 26 Aug 2026 11:31:23 -0400 Subject: [PATCH] drm/amd/display: Set mpc_tree_params->opp_id during OPP resource construct [Why & How] Currently, init_pipes() is the only interface responsible for initializing the OPP->MPCC resource for all pipes. However, during seamless boot transitions, init_pipes() is skipped and we transition directly to an ODM2:1 config where we end up programming the default SW struct state of mpc_tree_params, which is 0. This results in a config where both HUBP0 & HUBP1 are being fed into the same OPP inst, 0 in this case. This is purely a case of programming incorrect SW state initialization values into HW, so fix this by initializing mpc_tree_params with the correct instances during resource construct. Reviewed-by: Michael Strauss Signed-off-by: Ovidiu Bunea Signed-off-by: Ray Wu Tested-by: Dan Wheeler Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/display/dc/opp/dcn20/dcn20_opp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/amd/display/dc/opp/dcn20/dcn20_opp.c b/drivers/gpu/drm/amd/display/dc/opp/dcn20/dcn20_opp.c index 881b8da656b2..8486175a3b56 100644 --- a/drivers/gpu/drm/amd/display/dc/opp/dcn20/dcn20_opp.c +++ b/drivers/gpu/drm/amd/display/dc/opp/dcn20/dcn20_opp.c @@ -455,6 +455,8 @@ void dcn20_opp_construct(struct dcn20_opp *oppn20, oppn20->base.ctx = ctx; oppn20->base.inst = inst; oppn20->base.funcs = &dcn20_opp_funcs; + oppn20->base.mpc_tree_params.opp_id = inst; + oppn20->base.mpc_tree_params.opp_list = NULL; oppn20->regs = regs; oppn20->opp_shift = opp_shift;