From patchwork Tue Aug 6 03:22:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: You-Sheng Yang X-Patchwork-Id: 1969287 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=185.125.189.65; helo=lists.ubuntu.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=patchwork.ozlabs.org) Received: from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WdJYQ1yV2z1yf3 for ; Tue, 6 Aug 2024 13:23:37 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=lists.ubuntu.com) by lists.ubuntu.com with esmtp (Exim 4.86_2) (envelope-from ) id 1sbAmu-0001nh-9f; Tue, 06 Aug 2024 03:23:04 +0000 Received: from mail-pf1-f177.google.com ([209.85.210.177]) by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1sbAms-0001mV-Dm for kernel-team@lists.ubuntu.com; Tue, 06 Aug 2024 03:23:02 +0000 Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-70d2ae44790so77496b3a.2 for ; Mon, 05 Aug 2024 20:23:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722914580; x=1723519380; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RUONRcnlqfOAh5bfeks24AYIrIsf8cZEcCxExlDAFFE=; b=rHo1MB+f9MZPw1I7j/TZcibQSPPqxDVQC40gHgi4/CW2nq7PjKvopJUK4We+0enkj7 xJoYxiw7iT1G7KERHCiujpLtoDNUPyzX9hb7h3u/4EROkG8nZoWyXfkeuxU/la7Elb+L qGu1LlYTATCPC6FHhRuqNxaFOkQX5WaF/J2ZgEmJBmxJGlnv8vhDM1cXQr5gSE+NBxN0 h1Z6cJCDIeBgfX3MbGY9zt95XEVmJqZRnMcL42IIugLnYEajrm/szKrQhx+PTVANFqn9 GO7xmE0R4u0mplvNgKiS+FnoYP/oJWwVt1Yzh7ZKL1RAV9g1nQjyhJyO70pOC5C6k8JH NtXA== X-Gm-Message-State: AOJu0YzzJaCIXGTYEAtCxrG6IINR4xBoMrqjWp2rBD9f0nnCD1N8qbau qk6F6PwbXcKgTeMKsyFSmlYJ5Xem28G7lmfEL0oVYqoo6P6LvST7aHDstQ== X-Google-Smtp-Source: AGHT+IHO7lfP/2/kIfXnJasrNqBq+bLfEQps/Thg4Zlp6+WoKTq8lIkHlDHSkNC2lwwF09ZSjjueiQ== X-Received: by 2002:a05:6a21:1508:b0:1c2:9095:7382 with SMTP id adf61e73a8af0-1c69964b417mr12793101637.52.1722914580262; Mon, 05 Aug 2024 20:23:00 -0700 (PDT) Received: from localhost.localdomain (125-229-129-140.hinet-ip.hinet.net. [125.229.129.140]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1ff58f219easm76264135ad.58.2024.08.05.20.22.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Aug 2024 20:22:59 -0700 (PDT) From: You-Sheng Yang To: kernel-team@lists.ubuntu.com Subject: [PATCH 2/2][SRU][Unstable/Oracular] drm/amdgpu/vcn: not pause dpg for unified queue Date: Tue, 6 Aug 2024 11:22:03 +0800 Message-ID: <20240806032204.2704939-3-vicamo.yang@canonical.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240806032204.2704939-1-vicamo.yang@canonical.com> References: <20240806032204.2704939-1-vicamo.yang@canonical.com> MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.210.177; envelope-from=vicamo@gmail.com; helo=mail-pf1-f177.google.com 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: Boyuan Zhang BugLink: https://bugs.launchpad.net/bugs/2073282 For unified queue, DPG pause for encoding is done inside VCN firmware, so there is no need to pause dpg based on ring type in kernel. For VCN3 and below, pausing DPG for encoding in kernel is still needed. v2: add more comments v3: update commit message Signed-off-by: Boyuan Zhang Acked-by: Alex Deucher Reviewed-by: Ruijing Dong Signed-off-by: Alex Deucher (cherry picked from commit 7d75ef3736a025db441be652c8cc8e84044a215f) Signed-off-by: You-Sheng Yang --- drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c index 07dab6e4567d0..ceb3f1e4ed1dc 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c @@ -393,7 +393,9 @@ static void amdgpu_vcn_idle_work_handler(struct work_struct *work) for (i = 0; i < adev->vcn.num_enc_rings; ++i) fence[j] += amdgpu_fence_count_emitted(&adev->vcn.inst[j].ring_enc[i]); - if (adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG) { + /* Only set DPG pause for VCN3 or below, VCN4 and above will be handled by FW */ + if (adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG && + !adev->vcn.using_unified_queue) { struct dpg_pause_state new_state; if (fence[j] || @@ -439,7 +441,9 @@ void amdgpu_vcn_ring_begin_use(struct amdgpu_ring *ring) amdgpu_device_ip_set_powergating_state(adev, AMD_IP_BLOCK_TYPE_VCN, AMD_PG_STATE_UNGATE); - if (adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG) { + /* Only set DPG pause for VCN3 or below, VCN4 and above will be handled by FW */ + if (adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG && + !adev->vcn.using_unified_queue) { struct dpg_pause_state new_state; if (ring->funcs->type == AMDGPU_RING_TYPE_VCN_ENC) { @@ -465,8 +469,12 @@ void amdgpu_vcn_ring_begin_use(struct amdgpu_ring *ring) void amdgpu_vcn_ring_end_use(struct amdgpu_ring *ring) { + struct amdgpu_device *adev = ring->adev; + + /* Only set DPG pause for VCN3 or below, VCN4 and above will be handled by FW */ if (ring->adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG && - ring->funcs->type == AMDGPU_RING_TYPE_VCN_ENC) + ring->funcs->type == AMDGPU_RING_TYPE_VCN_ENC && + !adev->vcn.using_unified_queue) atomic_dec(&ring->adev->vcn.inst[ring->me].dpg_enc_submission_cnt); atomic_dec(&ring->adev->vcn.total_submission_cnt);