FAILED: patch "[PATCH] drm/amd/display: Only allow dig mapping to pwrseq in new asic" failed to apply to 6.6-stable tree
[email protected]
maintainerThe patch below does not apply to the 6.6-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.6.y
git checkout FETCH_HEAD
git cherry-pick -x 4e73826089ce899357580bbf6e0afe4e6f9900b7
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2024022602-handshake-spoiled-e4a5@gregkh' --subject-prefix 'PATCH 6.6.y' HEAD^..
Possible dependencies:
4e73826089ce ("drm/amd/display: Only allow dig mapping to pwrseq in new asic") b17ef04bf3a4 ("drm/amd/display: Pass pwrseq inst for backlight and ABM")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 4e73826089ce899357580bbf6e0afe4e6f9900b7 Mon Sep 17 00:00:00 2001
From: Lewis Huang <[email protected]>
Date: Wed, 31 Jan 2024 17:20:17 +0800
Subject: [PATCH] drm/amd/display: Only allow dig mapping to pwrseq in new asic
[Why]
The old asic only have 1 pwrseq hw.
We don't need to map the diginst to pwrseq inst in old asic.
[How]
1. Only mapping dig to pwrseq for new asic.
2. Move mapping function into dcn specific panel control component
drivers/gpu/drm/amd/display/dc/dce/dce_panel_cntl.c +1 -0
@@ -290,4 +290,5 @@ void dce_panel_cntl_construct( dce_panel_cntl->base.funcs = &dce_link_panel_cntl_funcs; dce_panel_cntl->base.ctx = init_data->ctx; dce_panel_cntl->base.inst = init_data->inst; + dce_panel_cntl->base.pwrseq_inst =0 ; }
drivers/gpu/drm/amd/display/dc/dcn301/dcn301_panel_cntl.c +1 -0
@@ -215,4 +215,5 @@ void dcn301_panel_cntl_construct( dcn301_panel_cntl->base.funcs = &dcn301_link_panel_cntl_funcs; dcn301_panel_cntl->base.ctx = init_data->ctx; dcn301_panel_cntl->base.inst = init_data->inst; + dcn301_panel_cntl->base.pwrseq_inst =0 ; }
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_panel_cntl.c +17 -1
@@ -154,8 +154,24 @@ void dcn31_panel_cntl_construct(struct dcn31_panel_cntl *dcn31_panel_cntl, const struct panel_cntl_init_data *init_data) { + uint8_t pwrseq_inst = 0xF; + dcn31_panel_cntl->base.funcs = &dcn31_link_panel_cntl_funcs; dcn31_panel_cntl->base.ctx = init_data->ctx; dcn31_panel_cntl->base.inst = init_data->inst; - dcn31_panel_cntl->base.pwrseq_inst = init_data->pwrseq_inst; + +switch (init_data->eng_id) { +case ENGINE_ID_DIGA : + pwrseq_inst =0 ; +break ; +case ENGINE_ID_DIGB : + pwrseq_inst =1 ; +break ; +default : +DC_LOG_WARNING ("Unsupported pwrseq engine id: %d!\n" , init_data->eng_id); +ASSERT (false); +break ; + } + + dcn31_panel_cntl->base.pwrseq_inst = pwrseq_inst; }
drivers/gpu/drm/amd/display/dc/inc/hw/panel_cntl.h +1 -1
@@ -57,7 +57,7 @@ struct panel_cntl_funcs {struct panel_cntl_init_data {struct dc_context *ctx;uint32_t inst; -uint32_t pwrseq_inst; +uint32_t eng_id; };struct panel_cntl {
drivers/gpu/drm/amd/display/dc/link/link_factory.c +1 -25
@@ -370,30 +370,6 @@ static enum transmitter translate_encoder_to_transmitter( } } -static uint8_t translate_dig_inst_to_pwrseq_inst (struct dc_link *link) -{ -uint8_t pwrseq_inst =0xF ; -struct dc_context *dc_ctx = link->dc->ctx; - -DC_LOGGER_INIT (dc_ctx->logger); - -switch (link->eng_id) { -case ENGINE_ID_DIGA : - pwrseq_inst =0 ; -break ; -case ENGINE_ID_DIGB : - pwrseq_inst =1 ; -break ; -default : -DC_LOG_WARNING ("Unsupported pwrseq engine id: %d!\n" , link->eng_id); -ASSERT (false); -break ; - } - -return pwrseq_inst; -} - -static void link_destruct (struct dc_link *link) {int i;
@@ -657,7 +633,7 @@ static bool construct_phy(struct dc_link *link, link->link_id.id == CONNECTOR_ID_LVDS)) { panel_cntl_init_data.ctx = dc_ctx; panel_cntl_init_data.inst = panel_cntl_init_data.ctx->dc_edp_id_count; - panel_cntl_init_data.pwrseq_inst =translate_dig_inst_to_pwrseq_inst (link); + panel_cntl_init_data.eng_id = link->eng_id; link->panel_cntl = link->dc->res_pool->funcs->panel_cntl_create ( &panel_cntl_init_data);