From patchwork Mon Nov 22 18:34:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Timo Aaltonen X-Patchwork-Id: 1558213 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HybYX29qcz9sXS for ; Tue, 23 Nov 2021 05:35:28 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1mpE9o-0008Pe-Vv; Mon, 22 Nov 2021 18:35:13 +0000 Received: from smtp-relay-canonical-0.internal ([10.131.114.83] helo=smtp-relay-canonical-0.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1mpE94-0007Tl-Qp for kernel-team@lists.ubuntu.com; Mon, 22 Nov 2021 18:34:26 +0000 Received: from leon.. (mobile-user-c1d2e5-215.dhcp.inet.fi [193.210.229.215]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPSA id 7236840079 for ; Mon, 22 Nov 2021 18:34:26 +0000 (UTC) From: Timo Aaltonen To: kernel-team@lists.ubuntu.com Subject: [PATCH 21/30] drm/amd/display: Fix DIG_HPD_SELECT for USB4 display endpoints. Date: Mon, 22 Nov 2021 20:34:09 +0200 Message-Id: <20211122183418.73674-22-tjaalton@ubuntu.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20211122183418.73674-1-tjaalton@ubuntu.com> References: <20211122183418.73674-1-tjaalton@ubuntu.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Jimmy Kizito BugLink: https://bugs.launchpad.net/bugs/1951868 [Why] DIB_BE_CNTL.DIG_HPD_SELECT selects the HPD block being used by the display endpoint assigned to DIG. In the case of USB4 display endpoints, no physical HPD block is assigned. [How] Setting DIB_BE_CNTL.DIG_HPD_SELECT to 5 indicates that no HPD is assigned to a display endpoint. Firmware decrements the HPD_SELECT value by 1 before writing it to the register. Reviewed-by: Meenakshikumar Somasundaram Acked-by: Wayne Lin Acked-by: Nicholas Kazlauskas Acked-by: Harry Wentland Signed-off-by: Jimmy Kizito Signed-off-by: Alex Deucher (cherry picked from commit 8cf5ed4a158e08f2b20c3a91bf4b72f8a9938ace) Signed-off-by: Timo Aaltonen --- .../amd/display/dc/dcn31/dcn31_dio_link_encoder.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dio_link_encoder.c b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dio_link_encoder.c index fd0ae6ade9c4..9d25b3613ff2 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dio_link_encoder.c +++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dio_link_encoder.c @@ -384,7 +384,7 @@ static bool link_dpia_control(struct dc_context *dc_ctx, dc_dmub_srv_cmd_execute(dmub); dc_dmub_srv_wait_idle(dmub); - return false; + return true; } static void link_encoder_disable(struct dcn10_link_encoder *enc10) @@ -420,7 +420,10 @@ void dcn31_link_encoder_enable_dp_output( dpia_control.lanenum = (uint8_t)link_settings->lane_count; dpia_control.symclk_10khz = link_settings->link_rate * LINK_RATE_REF_FREQ_IN_KHZ / 10; - dpia_control.hpdsel = 5; /* Unused by DPIA */ + /* DIG_BE_CNTL.DIG_HPD_SELECT set to 5 (hpdsel - 1) to indicate HPD pin + * unused by DPIA. + */ + dpia_control.hpdsel = 6; if (link) { dpia_control.dpia_id = link->ddc_hw_inst; @@ -462,7 +465,10 @@ void dcn31_link_encoder_enable_dp_mst_output( dpia_control.lanenum = (uint8_t)link_settings->lane_count; dpia_control.symclk_10khz = link_settings->link_rate * LINK_RATE_REF_FREQ_IN_KHZ / 10; - dpia_control.hpdsel = 5; /* Unused by DPIA */ + /* DIG_BE_CNTL.DIG_HPD_SELECT set to 5 (hpdsel - 1) to indicate HPD pin + * unused by DPIA. + */ + dpia_control.hpdsel = 6; if (link) { dpia_control.dpia_id = link->ddc_hw_inst;