Commit 7d707ddd authored by Jake Wang's avatar Jake Wang Committed by Alex Deucher
Browse files

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: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarJake Wang <haonan.wang2@amd.com>
Reviewed-by: default avatarNicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Acked-by: default avatarQingqing Zhuo <qingqing.zhuo@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 49c70ece
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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);