From patchwork Tue May 17 08:28:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Koba Ko X-Patchwork-Id: 1632102 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=e1gE96c8; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) 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 4L2TmF5rrHz9s0r for ; Tue, 17 May 2022 18:28:45 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1nqsZL-0007aS-1D; Tue, 17 May 2022 08:28:39 +0000 Received: from smtp-relay-internal-1.internal ([10.131.114.114] helo=smtp-relay-internal-1.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1nqsZJ-0007a5-Sb for kernel-team@lists.ubuntu.com; Tue, 17 May 2022 08:28:37 +0000 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) (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-internal-1.canonical.com (Postfix) with ESMTPS id 834F43F21D for ; Tue, 17 May 2022 08:28:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1652776117; bh=RRFzMyoKzBQELx8Z6OdJaqVTKq+sLnY8W5ydGI4fvUo=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=e1gE96c87AE9BwcEh+B2hyZWFCxIl6+ps2pBmQO3g4kYaabBHa85zOvvigfJUu1YA Cm+7F1OQUgYWA0Dcg1mbsoLecP6UnWzxojr8ZVIF7JYhKJZLH5GghkL1Hkh++7oINt R5YYiMxTg0T1HOqJoGxoEa/sZTsdA+CkSae3Ajidcj29cILyFWMgP/KIXpTWZEko5S caQEBiL0h3qLYXLr0SmznnD3oVlJ8lNCIpyHIxiGij9lFCRkSZWZhe9/+oPK2O5hGD +/ulKFjUnMinRU+Iyg442PyqfXPU9P4CkgrZ9jd8w5wbNNvrFlN7K0AJSIYcgTDK1p gxsnI5ypJkH7g== Received: by mail-pl1-f199.google.com with SMTP id u8-20020a170903124800b0015195a5826cso9284062plh.4 for ; Tue, 17 May 2022 01:28:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=RRFzMyoKzBQELx8Z6OdJaqVTKq+sLnY8W5ydGI4fvUo=; b=n9T1XDleTd2sfKLXRDvnoMUj/FLNYJl7E81HVFcY9zCJHmhrgn9IdkZ5x006cR385d n5ESRb7CcblP765Cl6sIEDPEjt1MC9BbRzQ1ab7ErRMDA6vQGXKz7vBAoIRBRCF2O9KL 3UlSR16Ec0+YkUNddvbSMyKVzNOAN9KCJDUmgeqsqTmFQpiAFFPBRTW00Lxf6bvKSBQD c74nFH08jwxqrYkc6UHWHSNUklyGZpZG2YHKAjddHEgGYMJx5C/EBqT3zvlvmxcNiG19 QeA8HfLciOFCuaBeFeISxRzvLbMe04aqBkQw8D1iZ+UTAMQVcPP5u5OzfwZLjhbmEWKB 89og== X-Gm-Message-State: AOAM533luxsmoVr4XnH4n0BHvGkUrVnB/8oVdJQW4SaWGcO/giZn0x5r k6rj9//HbfoxRhSaYyZEPU1qPIJ2Xx02pF0vPgxdBIWMIdQYaXhcCMARCvnTMtBaNPDAFYaIMKD ykXQqAOmOFqo/xVuFeGx9g85AxAwvq/Bfx7IRGMiyOA== X-Received: by 2002:a17:90a:9914:b0:1db:d10f:1fcf with SMTP id b20-20020a17090a991400b001dbd10f1fcfmr34753380pjp.241.1652776115836; Tue, 17 May 2022 01:28:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwv++OqVsZQcdgF8BBaLid47meqYkdi+7h5/SKQWGnAhO1IP8a56EWAnXNNN5ghvfojd0r47Q== X-Received: by 2002:a17:90a:9914:b0:1db:d10f:1fcf with SMTP id b20-20020a17090a991400b001dbd10f1fcfmr34753358pjp.241.1652776115514; Tue, 17 May 2022 01:28:35 -0700 (PDT) Received: from canonical.com (2001-b011-3815-15f4-c141-ca82-0c2a-eff1.dynamic-ip6.hinet.net. [2001:b011:3815:15f4:c141:ca82:c2a:eff1]) by smtp.gmail.com with ESMTPSA id x192-20020a6286c9000000b005107a4d5096sm8278405pfd.30.2022.05.17.01.28.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 May 2022 01:28:34 -0700 (PDT) From: Koba Ko To: kernel-team@lists.ubuntu.com Subject: [PATCH 1/5 V2][SRU][OEM-5.14] drm/amd/display: remove compbuf size wait Date: Tue, 17 May 2022 16:28:27 +0800 Message-Id: <20220517082831.30516-2-koba.ko@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220517082831.30516-1-koba.ko@canonical.com> References: <20220517082831.30516-1-koba.ko@canonical.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: Dmytro Laktyushkin BugLink: https://bugs.launchpad.net/bugs/1971417 This tends to take miliseconds in certain scenarios and we'd rather not wait that long. Due to how this interacts with det size update and locking waiting should not be necessary as compbuf updates before unlock. Add a watch for config error instead as that is something we actually do care about. Acked-by: Rodrigo Siqueira Signed-off-by: Dmytro Laktyushkin Signed-off-by: Alex Deucher (cherry picked from commit dce7e5318d4e599f3422b3fb327a902a89096f1e) Signed-off-by: Koba Ko --- drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.h | 1 + drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.c | 2 +- drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.h | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.h b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.h index 8d7e92d5d3e4b..925f1eb7a5bce 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.h +++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubbub.h @@ -303,6 +303,7 @@ struct dcn_hubbub_registers { type DET3_SIZE_CURRENT;\ type COMPBUF_SIZE;\ type COMPBUF_SIZE_CURRENT;\ + type CONFIG_ERROR;\ type COMPBUF_RESERVED_SPACE_64B;\ type COMPBUF_RESERVED_SPACE_ZS;\ type DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_A;\ diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.c b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.c index 7487bac60ebb8..125ecaccce26f 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.c +++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.c @@ -124,8 +124,8 @@ static void dcn31_program_compbuf_size(struct hubbub *hubbub, unsigned int compb ASSERT(hubbub2->det0_size + hubbub2->det1_size + hubbub2->det2_size + hubbub2->det3_size + compbuf_size_segments <= hubbub2->crb_size_segs); REG_UPDATE(DCHUBBUB_COMPBUF_CTRL, COMPBUF_SIZE, compbuf_size_segments); - REG_WAIT(DCHUBBUB_COMPBUF_CTRL, COMPBUF_SIZE_CURRENT, compbuf_size_segments, 1, 100); hubbub2->compbuf_size_segments = compbuf_size_segments; + ASSERT(REG_GET(DCHUBBUB_COMPBUF_CTRL, CONFIG_ERROR, &compbuf_size_segments) && !compbuf_size_segments); } } diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.h b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.h index 8ec98cbcbd47b..452d2c51cc184 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.h +++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.h @@ -98,6 +98,7 @@ HUBBUB_SF(DCHUBBUB_DET3_CTRL, DET3_SIZE_CURRENT, mask_sh),\ HUBBUB_SF(DCHUBBUB_COMPBUF_CTRL, COMPBUF_SIZE, mask_sh),\ HUBBUB_SF(DCHUBBUB_COMPBUF_CTRL, COMPBUF_SIZE_CURRENT, mask_sh),\ + HUBBUB_SF(DCHUBBUB_COMPBUF_CTRL, CONFIG_ERROR, mask_sh),\ HUBBUB_SF(COMPBUF_RESERVED_SPACE, COMPBUF_RESERVED_SPACE_64B, mask_sh),\ HUBBUB_SF(COMPBUF_RESERVED_SPACE, COMPBUF_RESERVED_SPACE_ZS, mask_sh),\ HUBBUB_SF(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_A, DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_A, mask_sh), \ From patchwork Tue May 17 08:28:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Koba Ko X-Patchwork-Id: 1632105 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=DDbVz9bQ; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) 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 4L2TmZ2q2Sz9s0r for ; Tue, 17 May 2022 18:29:02 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1nqsZc-0007nQ-D8; Tue, 17 May 2022 08:28:56 +0000 Received: from smtp-relay-internal-0.internal ([10.131.114.225] helo=smtp-relay-internal-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 1nqsZa-0007l2-M4 for kernel-team@lists.ubuntu.com; Tue, 17 May 2022 08:28:54 +0000 Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) (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-internal-0.canonical.com (Postfix) with ESMTPS id 2D2283F1E1 for ; Tue, 17 May 2022 08:28:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1652776120; bh=WcLG28TlBZFFJGnBcDKVtKycYlHuHlsWJJQwRvKimPU=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DDbVz9bQiIMaxJGq1URZxo88CsBOvbQz66nH818cxu977NXjZ979oT5Xp6octpEbJ OvqFlBh/vWRGtQh/ltMI0yWkthDv573b9mL4/q6YPjFy4bAAaDqi44O7hNtnYpJF2C m6nsEdcIRJ1ihB+4FNOJYTzhaU0VajCPgJCQ29FsIYZe1MxhlFmI/LdckgB3se1XBU wvO2mCysnq6BxruFTUT5kRL1Y3oIwX3tP38dDeWGPNv9zkcB0uZ9r4dPOxNLdNeChx Fk4U8pOTGLuRoVffKh8oqqgebxusj5OZlfRYq3ThXISBZXXb9BwceOX5x0RPQvCxID lwpmSTFFLBVVw== Received: by mail-pf1-f199.google.com with SMTP id g5-20020a62e305000000b0050d2dba0c5dso7388679pfh.8 for ; Tue, 17 May 2022 01:28:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WcLG28TlBZFFJGnBcDKVtKycYlHuHlsWJJQwRvKimPU=; b=waY/3SB9g4OrUWH5F1jdFhlW3fvIXxPBmpYbcKKoMVqjNtNpyUQ8h/EUXgNMnDaBet qX2riypl8dZ31dDe5LRpcf6ugv/z6ZzWP5R0dWC6J6lTymE4p1Gcr+Nqal3gbDNVezHm SCf+HFt9Q5qRVQpQSEFJg1pnOBmoEhKVfGo/24/0iphqu54dyFMYZ2Lj99MZFx7T4WA5 V3LJ9UBlTeE/MLplRy2rgmi89uCPA/nly/cuuuGUannh3HBPMZEmTubOqf8cBHYN3yI2 ZWF3tglO8CaM3zqozCAfHzQ1Utc5fqS5FtK2r6PMzEiuCzIafub6yxOlH3hrElrzRzpe CbpQ== X-Gm-Message-State: AOAM530pLKS5rXTTAbRvPhg990Q+pEl+qflRBjs3FtWqLYHuqqK13243 C9RlhLv536g6L6Z/wgrw/p9JBjAF8Y25goQ8unecF/LjlV47M/E980ZZ7CWYgzqi7vjLIzhzZoZ k6edqY4VF0k3p0igGle4NZPBwDSdwK9Fm570Uvu6Tow== X-Received: by 2002:a17:90b:3688:b0:1df:1d55:507f with SMTP id mj8-20020a17090b368800b001df1d55507fmr15878375pjb.169.1652776118419; Tue, 17 May 2022 01:28:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx90pm2QtHxInsgmlV2xLInIrb6TAo+zFuwmyxjB6cIFu0iBTqQ0hOzUiKFKNVzG4e+wS6V4A== X-Received: by 2002:a17:90b:3688:b0:1df:1d55:507f with SMTP id mj8-20020a17090b368800b001df1d55507fmr15878357pjb.169.1652776118101; Tue, 17 May 2022 01:28:38 -0700 (PDT) Received: from canonical.com (2001-b011-3815-15f4-c141-ca82-0c2a-eff1.dynamic-ip6.hinet.net. [2001:b011:3815:15f4:c141:ca82:c2a:eff1]) by smtp.gmail.com with ESMTPSA id d18-20020a17090ac25200b001cda0b69a30sm1023334pjx.52.2022.05.17.01.28.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 May 2022 01:28:37 -0700 (PDT) From: Koba Ko To: kernel-team@lists.ubuntu.com Subject: [PATCH 2/5 V2][SRU][J/OEM-5.14] drm/amd/display: Clear encoder assignments when state cleared. Date: Tue, 17 May 2022 16:28:28 +0800 Message-Id: <20220517082831.30516-3-koba.ko@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220517082831.30516-1-koba.ko@canonical.com> References: <20220517082831.30516-1-koba.ko@canonical.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/1971417 [Why] State can be cleared without removing individual streams (by calling dc_remove_stream_from_ctx()). This can leave the encoder assignment module in an incoherent state and cause future assignments to be incorrect. [How] Clear encoder assignments when committing 0 streams or re-initializing hardware. Acked-by: Aurabindo Pillai Signed-off-by: Jimmy Kizito Reviewed-by: Jun Lei Tested-by: Daniel Wheeler Signed-off-by: Alex Deucher (cherry picked from commit 589bd2f03f87563d6dc4f480d47e5aabc09e4784) Signed-off-by: Koba Ko --- .../drm/amd/display/dc/core/dc_link_enc_cfg.c | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c index 4dce25c39b756..95c60c8a038ff 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c @@ -223,6 +223,23 @@ static struct link_encoder *get_link_enc_used_by_link( return link_enc; } +/* Clear all link encoder assignments. */ +static void clear_enc_assignments(struct dc_state *state) +{ + int i; + enum engine_id eng_id; + struct dc_stream_state *stream; + + for (i = 0; i < MAX_PIPES; i++) { + state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i].valid = false; + eng_id = state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i].eng_id; + stream = state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i].stream; + if (eng_id != ENGINE_ID_UNKNOWN) + state->res_ctx.link_enc_cfg_ctx.link_enc_avail[eng_id - ENGINE_ID_DIGA] = eng_id; + if (stream) + stream->link_enc = NULL; + } +} void link_enc_cfg_init( struct dc *dc, @@ -237,6 +254,8 @@ void link_enc_cfg_init( state->res_ctx.link_enc_cfg_ctx.link_enc_avail[i] = ENGINE_ID_UNKNOWN; } + clear_enc_assignments(state); + state->res_ctx.link_enc_cfg_ctx.mode = LINK_ENC_CFG_STEADY; } @@ -252,6 +271,9 @@ void link_enc_cfg_link_encs_assign( ASSERT(state->stream_count == stream_count); + if (stream_count == 0) + clear_enc_assignments(state); + /* Release DIG link encoder resources before running assignment algorithm. */ for (i = 0; i < stream_count; i++) dc->res_pool->funcs->link_enc_unassign(state, streams[i]); From patchwork Tue May 17 08:28:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Koba Ko X-Patchwork-Id: 1632106 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=DISAUi0i; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) 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 4L2Tmb0mGbz9s1l for ; Tue, 17 May 2022 18:29:03 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1nqsZc-0007nl-P1; Tue, 17 May 2022 08:28:56 +0000 Received: from smtp-relay-internal-0.internal ([10.131.114.225] helo=smtp-relay-internal-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 1nqsZa-0007lM-O7 for kernel-team@lists.ubuntu.com; Tue, 17 May 2022 08:28:54 +0000 Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) (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-internal-0.canonical.com (Postfix) with ESMTPS id 6CED33F5F4 for ; Tue, 17 May 2022 08:28:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1652776134; bh=Few31m+QCDzozGE9vfcN/t+Hm1b8rD2Vf2VrFGIIQBo=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DISAUi0idKpidouY6499JXrbwsCrik60h6OinqhqzN5REUseori+aAQ24CW/N+uCK A5vjQ/wjWCbPUy7LLVDlKyHhSqBddfagJLgLKSFaLtR/73D8ooV8kZFNrwg855413M /ehk2isMCeWa/kw9Ug8VG15gUE97qF8flInCp8WwKByGJQNXOxYIFCKiuXqB2aN4GE 8Y50giHBtFyFxH+vYtzKQ3YJATFMFFtMAbcld3QhX1XyjrbuUENwqILRSbzjWn8HzL 2UIyOSulKwnieiFG3BrEIaPsFbzXWoHZ8Y3JgG06W2F8Zokr23MAkLMNdjocLLG4QZ NeFXskPiTNIBA== Received: by mail-pj1-f72.google.com with SMTP id z11-20020a17090a468b00b001dc792e8660so1035777pjf.1 for ; Tue, 17 May 2022 01:28:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Few31m+QCDzozGE9vfcN/t+Hm1b8rD2Vf2VrFGIIQBo=; b=vr4Mj/aMbgNNU+9oveQjqz4P/QowO+Ff4cu2BnUj6M1p2GVLqG1EX+d7xP3tVaYSC/ 5jKYvN71cyRcAHykXxvFqLSnBuE/N10O7MUE/CNCM30HSyHIb8oPPOPli7FOgpnOitiY d42CRyAyFm/VpEC4UdA/65owIsgRyHuWxXm/5GfJjATG7xJhOG0g7V4DCZQHUAjiCSN2 XVaZ6Y7yOlhAAXz7RGmCmvV0+O1qaRbcv90cD3dIoA0Fgdf81EcPzOfKPgIqqmpMBURG N9hI3khojOcnAPhS8fi/lVRvCs6mJLK/bBr3tMbGJpKzxWiMs79bizWrksitlZx4P6xW YOOA== X-Gm-Message-State: AOAM531EUfWxbTxLIivkBtBqLQVM/oMoXhF+UPe5Y1FgVlNyTrQQY4MX QCHC4vWsyCf4RvEGCFnXQvMPzKqbJJ4nSKrAclK00jq9bja9sKw3Q3pEU95tZmq56KFDsydhv0x UQt763AJYveJbyf+TyPA0UHzvRtPZfPlvbKaU8y3haA== X-Received: by 2002:a63:681:0:b0:3f2:5cfe:f917 with SMTP id 123-20020a630681000000b003f25cfef917mr9928536pgg.343.1652776120547; Tue, 17 May 2022 01:28:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwNpjAROpDEG2Q4pWStn+DUtd0Zrz6d2eOzMwHA+ummZvNZuixnPV4xENgxANC1DzQqBJ6lGw== X-Received: by 2002:a63:681:0:b0:3f2:5cfe:f917 with SMTP id 123-20020a630681000000b003f25cfef917mr9928520pgg.343.1652776120204; Tue, 17 May 2022 01:28:40 -0700 (PDT) Received: from canonical.com (2001-b011-3815-15f4-c141-ca82-0c2a-eff1.dynamic-ip6.hinet.net. [2001:b011:3815:15f4:c141:ca82:c2a:eff1]) by smtp.gmail.com with ESMTPSA id n18-20020a170903405200b0016168e90f37sm4448590pla.152.2022.05.17.01.28.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 May 2022 01:28:39 -0700 (PDT) From: Koba Ko To: kernel-team@lists.ubuntu.com Subject: [PATCH 3/5 V2][SRU][J/OEM-5.14] drm/amd/display: fix stale info in link encoder assignment Date: Tue, 17 May 2022 16:28:29 +0800 Message-Id: <20220517082831.30516-4-koba.ko@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220517082831.30516-1-koba.ko@canonical.com> References: <20220517082831.30516-1-koba.ko@canonical.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: Roy Chan BugLink: https://bugs.launchpad.net/bugs/1971417 [Why] The link encoder assignment leaves the old stream data when it was unassigned. When the clear encoder assignment is called, it based on the old stale data to access the de-allocated stream. [How] There should be no need to explicitly clean up the link encoder assignment if the unassign loop does the work properly, the loop should base on the current state to clean up the assignment. Also, the unassignment should better clean up the values in the assignement slots as well. Reviewed-by: Jun Lei Acked-by: Anson Jacob Tested-by: Daniel Wheeler Signed-off-by: Roy Chan Signed-off-by: Alex Deucher (cherry picked from commit e43098f6abb033142810e695c1b3d9cf61e19849) Signed-off-by: Koba Ko --- .../drm/amd/display/dc/core/dc_link_enc_cfg.c | 36 ++++++++----------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c index 95c60c8a038ff..c6ff6c797d11d 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c @@ -119,7 +119,10 @@ static void remove_link_enc_assignment( */ if (get_stream_using_link_enc(state, eng_id) == NULL) state->res_ctx.link_enc_cfg_ctx.link_enc_avail[eng_idx] = eng_id; + stream->link_enc = NULL; + state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i].eng_id = ENGINE_ID_UNKNOWN; + state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i].stream = NULL; break; } } @@ -224,28 +227,15 @@ static struct link_encoder *get_link_enc_used_by_link( return link_enc; } /* Clear all link encoder assignments. */ -static void clear_enc_assignments(struct dc_state *state) +static void clear_enc_assignments(struct dc *dc, struct dc_state *state) { int i; - enum engine_id eng_id; - struct dc_stream_state *stream; for (i = 0; i < MAX_PIPES; i++) { state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i].valid = false; - eng_id = state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i].eng_id; - stream = state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i].stream; - if (eng_id != ENGINE_ID_UNKNOWN) - state->res_ctx.link_enc_cfg_ctx.link_enc_avail[eng_id - ENGINE_ID_DIGA] = eng_id; - if (stream) - stream->link_enc = NULL; + state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i].eng_id = ENGINE_ID_UNKNOWN; + state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i].stream = NULL; } -} - -void link_enc_cfg_init( - struct dc *dc, - struct dc_state *state) -{ - int i; for (i = 0; i < dc->res_pool->res_cap->num_dig_link_enc; i++) { if (dc->res_pool->link_encoders[i]) @@ -253,8 +243,13 @@ void link_enc_cfg_init( else state->res_ctx.link_enc_cfg_ctx.link_enc_avail[i] = ENGINE_ID_UNKNOWN; } +} - clear_enc_assignments(state); +void link_enc_cfg_init( + struct dc *dc, + struct dc_state *state) +{ + clear_enc_assignments(dc, state); state->res_ctx.link_enc_cfg_ctx.mode = LINK_ENC_CFG_STEADY; } @@ -271,12 +266,9 @@ void link_enc_cfg_link_encs_assign( ASSERT(state->stream_count == stream_count); - if (stream_count == 0) - clear_enc_assignments(state); - /* Release DIG link encoder resources before running assignment algorithm. */ - for (i = 0; i < stream_count; i++) - dc->res_pool->funcs->link_enc_unassign(state, streams[i]); + for (i = 0; i < dc->current_state->stream_count; i++) + dc->res_pool->funcs->link_enc_unassign(state, dc->current_state->streams[i]); for (i = 0; i < MAX_PIPES; i++) ASSERT(state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i].valid == false); From patchwork Tue May 17 08:28:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Koba Ko X-Patchwork-Id: 1632107 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=WTbywWfA; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) 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 4L2Tmb6L1wz9s0r for ; Tue, 17 May 2022 18:29:03 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1nqsZe-0007pJ-4U; Tue, 17 May 2022 08:28:58 +0000 Received: from smtp-relay-internal-0.internal ([10.131.114.225] helo=smtp-relay-internal-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 1nqsZb-0007m5-AX for kernel-team@lists.ubuntu.com; Tue, 17 May 2022 08:28:55 +0000 Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) (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-internal-0.canonical.com (Postfix) with ESMTPS id E131D3F5F4 for ; Tue, 17 May 2022 08:28:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1652776134; bh=4nlvKKZrUeIIhtyku8hWOGRRSa9ib/KJt3Z3re94TFY=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=WTbywWfAwTGf0QRhXQCCVo/dITmV7s8Pef+1J9E8/lWTOTVZwSoazvrIBoMH0pkxq FBmy4lAvUiryVbkKIWBgHnBArY5KJSc6rl6NagjyKKPf+rrFQIa86C2x8adh0eXDH8 OlbgjbRmI+FxRNDJkw7MYiU+2Oun/sXTd2AF0GhBMOqkjg/6uEBSUywr6j1dO0mgKy zWuSEzAw5m3m5HcYeZiXUpZCjnqFBHBmutcxYuMThAU1ZryjyR3MIdUl/UCUGC+A1g xY37QFrEpGlccxz5t4OZ/HVyhUNnZF+ZDYku9zpI7rnce3Ce+wPu/YHouo3R6R7vTX C9iRDXcVmDY8A== Received: by mail-pj1-f70.google.com with SMTP id oa7-20020a17090b1bc700b001df2567933eso1091053pjb.4 for ; Tue, 17 May 2022 01:28:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4nlvKKZrUeIIhtyku8hWOGRRSa9ib/KJt3Z3re94TFY=; b=ixm4ynHrWw3p1XcVFwcyOThzN3ct+Y7KNfSlOoCM8bfow5txLpuMNRncqbIlsneBu8 k5KDSLGii7jnHgwe655LBi8vEJiQi12mUT2yzhH3bebak2aWxTVVMQHT5iFr97kZ08cm 5jOcmj1f2Ok9kQ5FcfEtsqOpa4pALvjU2v3klwCUg1vuDkxrUiBJhPiy54a5hT6tqqYL DJ+IcgQqjZuUKLlpNOvHRH4zbxp1i+q0usRJDqDisPpwh7T8kw9l9DSJ42Gaj9OgfUiY N9GgikvDvRpSEXJC9dJq1CLtmdE8btivoQLkIJdKdrDXfYmfAp3bno+QwJVdmsPyhhOA iKpQ== X-Gm-Message-State: AOAM5321oKfbBkSoI+VISbnGotAePmis8F1W+O986erDnUsbFgRuNyvJ sqhSklrFgrhkQOIDtfRU8AQomz4kNaKfClveds459rAKAlPuVQ5eN60tdMuq+qoqRoYdU+l3Cd0 +xEX30xGthk9OXiDUY/bTecBes6JotQ7qSpf63IrrEg== X-Received: by 2002:a17:902:f708:b0:153:839f:bf2c with SMTP id h8-20020a170902f70800b00153839fbf2cmr21632668plo.113.1652776123344; Tue, 17 May 2022 01:28:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxpxTGaar/I/Q5qlDzO8NJdyBSOVFIU7WlF2AF5B/zFncowDMU3IayZ6kNeuveIev+kc4KAYg== X-Received: by 2002:a17:902:f708:b0:153:839f:bf2c with SMTP id h8-20020a170902f70800b00153839fbf2cmr21632650plo.113.1652776122907; Tue, 17 May 2022 01:28:42 -0700 (PDT) Received: from canonical.com (2001-b011-3815-15f4-c141-ca82-0c2a-eff1.dynamic-ip6.hinet.net. [2001:b011:3815:15f4:c141:ca82:c2a:eff1]) by smtp.gmail.com with ESMTPSA id y2-20020a17090322c200b0015e8d4eb23bsm8675970plg.133.2022.05.17.01.28.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 May 2022 01:28:42 -0700 (PDT) From: Koba Ko To: kernel-team@lists.ubuntu.com Subject: [PATCH 4/5 V2][SRU][J/OEM-5.14] drm/amd/display: Query all entries in assignment table during updates. Date: Tue, 17 May 2022 16:28:30 +0800 Message-Id: <20220517082831.30516-5-koba.ko@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220517082831.30516-1-koba.ko@canonical.com> References: <20220517082831.30516-1-koba.ko@canonical.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/1971417 [Why] Stream ordering and count can vary from one state to the next. Only checking a subset of entries in the encoder assignment table can lead to invalid encoder assignments. [How] Check all entries in encoder assignment table when querying it. Reviewed-by: Jun Lei Acked-by: Anson Jacob Tested-by: Daniel Wheeler Signed-off-by: Jimmy Kizito Signed-off-by: Alex Deucher (cherry picked from commit aadb06f9c9729ee3af1543f54da966644ebc5be7) Signed-off-by: Koba Ko --- .../gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c index c6ff6c797d11d..5376e1d7d69a2 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c @@ -217,7 +217,7 @@ static struct link_encoder *get_link_enc_used_by_link( .link_id = link->link_id, .ep_type = link->ep_type}; - for (i = 0; i < state->stream_count; i++) { + for (i = 0; i < MAX_PIPES; i++) { struct link_enc_assignment assignment = state->res_ctx.link_enc_cfg_ctx.link_enc_assignments[i]; if (assignment.valid == true && are_ep_ids_equal(&assignment.ep_id, &ep_id)) @@ -520,6 +520,7 @@ bool link_enc_cfg_validate(struct dc *dc, struct dc_state *state) uint8_t dig_stream_count = 0; int matching_stream_ptrs = 0; int eng_ids_per_ep_id[MAX_PIPES] = {0}; + int valid_bitmap = 0; /* (1) No. valid entries same as stream count. */ for (i = 0; i < MAX_PIPES; i++) { @@ -601,5 +602,15 @@ bool link_enc_cfg_validate(struct dc *dc, struct dc_state *state) is_valid = valid_entries && valid_stream_ptrs && valid_uniqueness && valid_avail && valid_streams; ASSERT(is_valid); + if (is_valid == false) { + valid_bitmap = + (valid_entries & 0x1) | + ((valid_stream_ptrs & 0x1) << 1) | + ((valid_uniqueness & 0x1) << 2) | + ((valid_avail & 0x1) << 3) | + ((valid_streams & 0x1) << 4); + dm_error("Invalid link encoder assignments: 0x%x\n", valid_bitmap); + } + return is_valid; } From patchwork Tue May 17 08:28:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Koba Ko X-Patchwork-Id: 1632104 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=tgCml0BO; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) 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 4L2TmQ6sPTz9s0r for ; Tue, 17 May 2022 18:28:54 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1nqsZV-0007hZ-73; Tue, 17 May 2022 08:28:49 +0000 Received: from smtp-relay-internal-1.internal ([10.131.114.114] helo=smtp-relay-internal-1.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1nqsZS-0007fW-Vh for kernel-team@lists.ubuntu.com; Tue, 17 May 2022 08:28:46 +0000 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) (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-internal-1.canonical.com (Postfix) with ESMTPS id 1CDA53F21D for ; Tue, 17 May 2022 08:28:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1652776126; bh=OUiO4FsZjrRRnNqzxePxg82cqYzNkz2edx+XwI9wxIE=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=tgCml0BOPehMHKY/EimHFQm9lu03jOyJFf7EnRNjciXYHYUk02rWmC712WiueGzQB fHV20yw50WTLTrHUYFCvada3lOP7c1QBVYpDpefPNkxt983LfukqBmBvgz1x87On1Q OppsS6fDc0RoTvdX63tdIhxSNeVf/OlD8ZNZjk7S1pTmaKxHtzZ6oJX668We/RjGc+ o/p6wIdkCLc9ZQXLb6Xijrqig1rqBH4nGcJsHQvgXrjTP6NP/Zdm0Zt8Hr6Sczd3Ul INI48hvJPlnnTDJzJErhz68vBzZ9a1Y+1q1P7XqeXzPcUejjUjc9vP5VAT+ZVdkwl3 J/cS96KApTbNQ== Received: by mail-pl1-f199.google.com with SMTP id u8-20020a170903124800b0015195a5826cso9284062plh.4 for ; Tue, 17 May 2022 01:28:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OUiO4FsZjrRRnNqzxePxg82cqYzNkz2edx+XwI9wxIE=; b=M8i7BhyCaoS32HifOSQcbFgD2Ab3FTZeyqctCzos189KEE7ggtArjwAev1atTDsxfR CRA+6uUL1O0fwYeJjatmUwDO3CiJVWM6SC4LHIVcB3CIOZ6pHHGUexIgo6BLkAv59GCh 2cCEVLSkvej4bHFQYPMN2KBGeETlc1TLH8dyn5/65M2gBTKugsXQN3oXwilXBIFdpZ0y vYBzZNElNn+FngVwuO/Ju6NGl+aab7BQ9W0aT5UXjNzDkwljrOLfyQV2nkbQZxnvI2/s gJfUywkNvujbh2570f1SUVbiiCafGm2u6Gs+JFKehjzRjHpuwperFp+aBSwigbOaiACC 13eg== X-Gm-Message-State: AOAM53130SNPTKlwVnV8xdoGh6KTqduozf/JvWtpMvvKZaQ21/vJBMPK qqsZE6M7lp9/D0ant3mmz1+pZl6BfssDXBmE8O8UCCDpo0xJ6QFRpfEd1dZ6qyLQnzUgMzJQMOf yW7Qy8P9AHba8RR6P+4ugEknbIskxesvSe1Xm65c1XQ== X-Received: by 2002:a17:90a:64c3:b0:1df:5016:87d8 with SMTP id i3-20020a17090a64c300b001df501687d8mr10164518pjm.56.1652776125315; Tue, 17 May 2022 01:28:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwPLsluAt/HWJ44cbxIGZV+XpAR9zwyUBVPZ/stmixRxvG4RXsO35Mt7ARGxlUWu1104WYyGw== X-Received: by 2002:a17:90a:64c3:b0:1df:5016:87d8 with SMTP id i3-20020a17090a64c300b001df501687d8mr10164504pjm.56.1652776124986; Tue, 17 May 2022 01:28:44 -0700 (PDT) Received: from canonical.com (2001-b011-3815-15f4-c141-ca82-0c2a-eff1.dynamic-ip6.hinet.net. [2001:b011:3815:15f4:c141:ca82:c2a:eff1]) by smtp.gmail.com with ESMTPSA id b12-20020a170902d88c00b0015e8d4eb1fasm8532041plz.68.2022.05.17.01.28.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 May 2022 01:28:44 -0700 (PDT) From: Koba Ko To: kernel-team@lists.ubuntu.com Subject: [PATCH 5/5 V2][SRU][J/OEM-5.14] drm/amd/display: Initialise encoder assignment when initialising dc_state Date: Tue, 17 May 2022 16:28:31 +0800 Message-Id: <20220517082831.30516-6-koba.ko@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220517082831.30516-1-koba.ko@canonical.com> References: <20220517082831.30516-1-koba.ko@canonical.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/1971417 [Why] Link encoder assignment tracking variables need to be (re)initialised whenever dc_state is (re)initialised. Otherwise variables used for dynamic encoder assignment (especially the link encoder availability pool) are out of sync with dc_state and future encoder assignments are invalid. [How] Initialise encoder assignment variables when creating new dc_state resource. Reviewed-by: Jun Lei Acked-by: Anson Jacob Tested-by: Daniel Wheeler Signed-off-by: Jimmy Kizito Signed-off-by: Alex Deucher (cherry picked from commit 7a47c8820a1d97e6cb5bcef6b65529f1389b0e13) Signed-off-by: Koba Ko --- drivers/gpu/drm/amd/display/dc/core/dc.c | 5 +---- drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c | 4 ++-- drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 3 +++ drivers/gpu/drm/amd/display/dc/inc/link_enc_cfg.h | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c index 01ed988ea72b9..f05d614939181 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c @@ -1001,8 +1001,6 @@ static bool dc_construct(struct dc *dc, goto fail; } - dc_resource_state_construct(dc, dc->current_state); - if (!create_links(dc, init_params->num_virtual_links)) goto fail; @@ -1012,8 +1010,7 @@ static bool dc_construct(struct dc *dc, if (!create_link_encoders(dc)) goto fail; - /* Initialise DIG link encoder resource tracking variables. */ - link_enc_cfg_init(dc, dc->current_state); + dc_resource_state_construct(dc, dc->current_state); return true; diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c index 5376e1d7d69a2..8f8c4482444e2 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c @@ -227,7 +227,7 @@ static struct link_encoder *get_link_enc_used_by_link( return link_enc; } /* Clear all link encoder assignments. */ -static void clear_enc_assignments(struct dc *dc, struct dc_state *state) +static void clear_enc_assignments(const struct dc *dc, struct dc_state *state) { int i; @@ -246,7 +246,7 @@ static void clear_enc_assignments(struct dc *dc, struct dc_state *state) } void link_enc_cfg_init( - struct dc *dc, + const struct dc *dc, struct dc_state *state) { clear_enc_assignments(dc, state); diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c index 3735ecb016b83..177f545f854ef 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c @@ -2110,6 +2110,9 @@ void dc_resource_state_construct( struct dc_state *dst_ctx) { dst_ctx->clk_mgr = dc->clk_mgr; + + /* Initialise DIG link encoder resource tracking variables. */ + link_enc_cfg_init(dc, dst_ctx); } diff --git a/drivers/gpu/drm/amd/display/dc/inc/link_enc_cfg.h b/drivers/gpu/drm/amd/display/dc/inc/link_enc_cfg.h index 83b2199b2c83f..cfacc7f2f238b 100644 --- a/drivers/gpu/drm/amd/display/dc/inc/link_enc_cfg.h +++ b/drivers/gpu/drm/amd/display/dc/inc/link_enc_cfg.h @@ -36,7 +36,7 @@ * Initialise link encoder resource tracking. */ void link_enc_cfg_init( - struct dc *dc, + const struct dc *dc, struct dc_state *state); /*