From 5d393be08b5e09d48e07a1b40a2d0291a58de321 Mon Sep 17 00:00:00 2001 From: Hersen Wu Date: Thu, 25 May 2017 10:55:54 -0400 Subject: [PATCH 0477/4131] drm/amd/display: create_links bug with empty DDI slot Signed-off-by: Hersen Wu Reviewed-by: Hersen Wu Acked-by: Harry Wentland Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c | 7 ++++--- drivers/gpu/drm/amd/display/dc/core/dc.c | 3 +-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c b/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c index 682fc9b..fcd3b72 100644 --- a/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c +++ b/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c @@ -410,6 +410,9 @@ enum generic_id generic_id_from_bios_object_id(uint32_t bios_object_id) return id; } +/* BIOS oject table displaypath is per connector. + * There is extra path not for connector. BIOS fill its encoderid as 0 + */ static uint8_t bios_parser_get_connectors_number(struct dc_bios *dcb) { struct bios_parser *bp = BP_FROM_DCB(dcb); @@ -417,9 +420,7 @@ static uint8_t bios_parser_get_connectors_number(struct dc_bios *dcb) unsigned int i; for (i = 0; i < bp->object_info_tbl.v1_4->number_of_path; i++) { - if (bp->object_info_tbl.v1_4->display_path[i].encoderobjid != 0 - && - bp->object_info_tbl.v1_4->display_path[i].display_objid != 0) + if (bp->object_info_tbl.v1_4->display_path[i].encoderobjid != 0) count++; } return count; diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c index c33e31c..323a5e7 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c @@ -97,6 +97,7 @@ static bool create_links( struct core_link *link; link_init_params.ctx = dc->ctx; + /* next BIOS object table connector */ link_init_params.connector_index = i; link_init_params.link_index = dc->link_count; link_init_params.dc = dc; @@ -106,8 +107,6 @@ static bool create_links( dc->links[dc->link_count] = link; link->dc = dc; ++dc->link_count; - } else { - dm_error("DC: failed to create link!\n"); } } -- 2.7.4