mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-30 21:40:37 -04:00
drm/amd/display: Use pwrseq instance to determine eDP instance
[Why & How] Link index doesn't always correspond to the appropriate eDP instance. We can assume lower link index is a lower eDP instance and set panel control instance accordingly. Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Jake Wang <haonan.wang2@amd.com> Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -1383,6 +1383,8 @@ static bool dc_link_construct(struct dc_link *link,
|
||||
struct dc_bios *bios = init_params->dc->ctx->dc_bios;
|
||||
const struct dc_vbios_funcs *bp_funcs = bios->funcs;
|
||||
struct bp_disp_connector_caps_info disp_connect_caps_info = { 0 };
|
||||
struct dc_link *edp_links[MAX_NUM_EDP];
|
||||
int edp_num;
|
||||
|
||||
DC_LOGGER_INIT(dc_ctx->logger);
|
||||
|
||||
@@ -1506,7 +1508,11 @@ static bool dc_link_construct(struct dc_link *link,
|
||||
(link->link_id.id == CONNECTOR_ID_EDP ||
|
||||
link->link_id.id == CONNECTOR_ID_LVDS)) {
|
||||
panel_cntl_init_data.ctx = dc_ctx;
|
||||
panel_cntl_init_data.inst = link->link_index;
|
||||
get_edp_links(panel_cntl_init_data.ctx->dc, edp_links, &edp_num);
|
||||
if ((edp_num > 1) && (link->link_index > edp_links[0]->link_index))
|
||||
panel_cntl_init_data.inst = 1;
|
||||
else
|
||||
panel_cntl_init_data.inst = 0;
|
||||
link->panel_cntl =
|
||||
link->dc->res_pool->funcs->panel_cntl_create(
|
||||
&panel_cntl_init_data);
|
||||
|
||||
Reference in New Issue
Block a user