Received: by 2002:ab2:6857:0:b0:1ef:ffd0:ce49 with SMTP id l23csp2583449lqp; Mon, 25 Mar 2024 03:31:29 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXHCialvkMvTYQBAKeDrdOtAeE40rjpnx0TvDWY/DiwPq8M+wLH3XgR3SaTLU4YpJ2exI9H+MYPIT/QwPsn3dClO/kHyMyLWde+EVioBg== X-Google-Smtp-Source: AGHT+IEz6CrsbuextRaGRnkla2DQ2rzcwD5kMcDGtdKvqlaKOfB2BMp//qYBK8WsId7vfoDRAlW9 X-Received: by 2002:a50:8d01:0:b0:56b:c003:16a6 with SMTP id s1-20020a508d01000000b0056bc00316a6mr4702351eds.23.1711362688850; Mon, 25 Mar 2024 03:31:28 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711362688; cv=pass; d=google.com; s=arc-20160816; b=oC0dgaHJKOfxZI1imrvq1NmAgfVDGiiuyPRXMCbdfsd2B7zeRR32GmY9l5/dj5aKve 0lxm1ZVDe7ixOmRwTh+bHxLXmGB9MF5bfFDpvBZ810ZJTbtuScUg3AL5tvG0GPVQB2cN 29ucoGjeAYW3gX7ZJYrBfhEYdwjwZrqvsUAuTBa7JStluvaMnAwT/nNrUfBJcN5Q8VSG yRVUB1Z+S7dNmjUSo0KQh1/+MA0QY3X9v1jeTL3WdS9jy4BNww0Qa1aE2SToq6pP9Jlg VUjkI6/IiJwiTdJiYBXKFyr4v3LgX6yvhSifOf2euaM5bINzc9RUwGtnv9gtnfiAb1rA VUWQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=yUZpRfqktMAiCENe5zzHXo0cAwGYpZ8mXpkZzGembIE=; fh=++frzZ9DvDAI+8mhQ/wiVRLMzdQJhVQHcxgSBcgB+TI=; b=arieRcVNShWV5Zi97JPYOgopKVW8nv1QqacrjsZY0TfK5jTYZX4lRTHQ5ljsa7t4gA Vig31l+k4xqZOfC1Dl81Bdwhj4/33RHANb4wH0u7VJmzPTc9HaBuOMgiA2UdezJudENk p8+gn4vgGRXVT6Fue2eW5wRR1gW7sPI7RlGK1YWAhE/W1S6guRLeSGWX0Gsq48qfXAmE wZ8A5PpPGfM1HFjPe6aTQDRx+kWQ3N92HTlh5Yvqc7vac2hhlAc8s0ui3x69vsLIQFfh G4vJ9nCttua8kdKdSzi05EJmGR+xmGmB/6Xpe0gnkHdE12Xiuf6sAPJSEW+URpHqFRBT SxBQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=EmJt0wq7; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115309-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115309-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id g27-20020a056402321b00b0056c097f1e6fsi1288616eda.70.2024.03.25.03.31.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Mar 2024 03:31:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-115309-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=EmJt0wq7; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115309-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115309-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 8DEEE1F2CEE4 for ; Mon, 25 Mar 2024 10:31:28 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id F22BF1D8BC6; Mon, 25 Mar 2024 02:32:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EmJt0wq7" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E46A80021; Sun, 24 Mar 2024 22:48:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320502; cv=none; b=akeDqbjbG2t52+0kIBh3ZUmM2sN47P0zpyj42aH1N+wsK8loCQ2mNKOkzejdIcJoxoCTiIqgu0L+sQ0A7T8wnh20fnKpfVLuxmrKxZx4w7ilFhtGj+nfYgKZSHwglDgtG7CMJ2z5TdhbChJ/N6q3aLQl5IxYFvcLNbWEYe866WI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320502; c=relaxed/simple; bh=vGsRcugzQXk3Cte7pTGXjU6O3+vYXY4P4bjFaOnISPY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qZlG8GRip18HlgoIF+DUbhbMdZSf4mrOOFu584q+5IrQ2Vn4G3qwht0NBFlnxfxqqbXWgA6vxQigBqf3Aq3QfLoKTkZ4il2nGV7kqSmH+4oJQqzDIwQ15ZXEKHUK/ziMcL8g0mv7vijxb2WqFM0Evd8cQJaxpF9m7sT4EMIWCgQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EmJt0wq7; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id CE854C433C7; Sun, 24 Mar 2024 22:48:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320502; bh=vGsRcugzQXk3Cte7pTGXjU6O3+vYXY4P4bjFaOnISPY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EmJt0wq7bppQzJwOP7KIZzDelfh3Ns6Qhq2aBM8I92gyWxp0nbJxcVVZ6D9KzNzMe ZtIPHM2TNLtBqpD9ZYKrnBAEGWySRhbrNNLKYODoASeEPi2p17qg66qMhI/LKIO9LU zTiLGlA0rVtlBIyMGIenJKU6tpfbvWhL+tDEQMAKyQKbiRuXHKlF7lRm/UtUcXEqlh RzN46kreuYMeY5vw86TLq4QYITFKUV+4gv61lB+w8aWB1ctEtFKntm/n68FqUwvwOF EpegNPaMPxtBS36H4hhm0EvaJG4hheTICTNcZ6g2HMyb9i5ylxDFGpSv4vDkP3qL+Y BuEF199UZ330Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Prike Liang , Alex Deucher , Sasha Levin Subject: [PATCH 6.7 062/713] drm/amdgpu: Enable gpu reset for S3 abort cases on Raven series Date: Sun, 24 Mar 2024 18:36:28 -0400 Message-ID: <20240324224720.1345309-63-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Prike Liang [ Upstream commit c671ec01311b4744b377f98b0b4c6d033fe569b3 ] Currently, GPU resets can now be performed successfully on the Raven series. While GPU reset is required for the S3 suspend abort case. So now can enable gpu reset for S3 abort cases on the Raven series. Signed-off-by: Prike Liang Acked-by: Alex Deucher Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin --- drivers/gpu/drm/amd/amdgpu/soc15.c | 45 +++++++++++++++++------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c b/drivers/gpu/drm/amd/amdgpu/soc15.c index 9b5af3f1383a7..f9ba1803046d9 100644 --- a/drivers/gpu/drm/amd/amdgpu/soc15.c +++ b/drivers/gpu/drm/amd/amdgpu/soc15.c @@ -574,11 +574,34 @@ soc15_asic_reset_method(struct amdgpu_device *adev) return AMD_RESET_METHOD_MODE1; } +static bool soc15_need_reset_on_resume(struct amdgpu_device *adev) +{ + u32 sol_reg; + + sol_reg = RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_81); + + /* Will reset for the following suspend abort cases. + * 1) Only reset limit on APU side, dGPU hasn't checked yet. + * 2) S3 suspend abort and TOS already launched. + */ + if (adev->flags & AMD_IS_APU && adev->in_s3 && + !adev->suspend_complete && + sol_reg) + return true; + + return false; +} + static int soc15_asic_reset(struct amdgpu_device *adev) { /* original raven doesn't have full asic reset */ - if ((adev->apu_flags & AMD_APU_IS_RAVEN) || - (adev->apu_flags & AMD_APU_IS_RAVEN2)) + /* On the latest Raven, the GPU reset can be performed + * successfully. So now, temporarily enable it for the + * S3 suspend abort case. + */ + if (((adev->apu_flags & AMD_APU_IS_RAVEN) || + (adev->apu_flags & AMD_APU_IS_RAVEN2)) && + !soc15_need_reset_on_resume(adev)) return 0; switch (soc15_asic_reset_method(adev)) { @@ -1297,24 +1320,6 @@ static int soc15_common_suspend(void *handle) return soc15_common_hw_fini(adev); } -static bool soc15_need_reset_on_resume(struct amdgpu_device *adev) -{ - u32 sol_reg; - - sol_reg = RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_81); - - /* Will reset for the following suspend abort cases. - * 1) Only reset limit on APU side, dGPU hasn't checked yet. - * 2) S3 suspend abort and TOS already launched. - */ - if (adev->flags & AMD_IS_APU && adev->in_s3 && - !adev->suspend_complete && - sol_reg) - return true; - - return false; -} - static int soc15_common_resume(void *handle) { struct amdgpu_device *adev = (struct amdgpu_device *)handle; -- 2.43.0