From mboxrd@z Thu Jan 1 00:00:00 1970 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 DFAD73C97CC; Sat, 28 Feb 2026 17:39:47 +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=1772300387; cv=none; b=BBSuJoC/AUZqfBNoGxyZTDTxvxhIC3HCofPuSmt7akwZ/uW6WgFrEhW4JnDN08j9SwRcdeZWtKZS/NODL6x46UYBittb8jQZgYAg2Y4umgLsqmtzKsHZIf1ovwbLji/0hW3CTcC4B/HLIBDL1DNFfQR6TkePzWkhJBf3YWc0WM4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772300387; c=relaxed/simple; bh=BTDRynjVjWjEDGWUKmJuV6dDV3tt2Q+2Vr7hjJwaa1o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MCtGQq7Yr0t6kMuxDbzlnAUX28u3WfE2MdbyYLtOUawM1Swg2fKHPg6VcWa72mUFj0m5GHLO9aeFVWndRVaqYCOJSSpB+dxuemmwk2jmVos1YvuguFKdXUio3SbAo7ab4XChP946dvOy+s33WjILtoamRzSwJ1nqjFLGycdT03I= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=O9q99RXb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="O9q99RXb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC98DC2BCB0; Sat, 28 Feb 2026 17:39:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772300387; bh=BTDRynjVjWjEDGWUKmJuV6dDV3tt2Q+2Vr7hjJwaa1o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O9q99RXbYmEumK6CQfapBxsWsR9cl3NsPrh3rNV6MZTIe/aTWKOfOjgmRedTtd/cf RKTYTKvjdcvWBWTqD0gsha3TXorhtVGj64spMqLdkt8tcy9plU82WJkgeBfarTiUTJ N88SkR3WQacvOkPPUPmh/Cx7nq727zHgdz9g0zgEqfO5x4AixON0814mrctNLeXv95 wMw4nt2g546mmgrtjjJxH2xhM+GKfg4+n7H/w70wUC0uXjIc1/ejV/tX5xmy3uXwvb UCsE5sBVJ9+5EdzbLwn80+6U5KpBo7OqJn4Z3HtWkh1JLcOugakGIFMZRR3fkqu8Df YATwhoUOQSo4Q== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Tom Chung , Nicholas Kazlauskas , Wayne Lin , Daniel Wheeler , Alex Deucher , Sasha Levin Subject: [PATCH 6.19 424/844] drm/amd/display: Fix system resume lag issue Date: Sat, 28 Feb 2026 12:25:37 -0500 Message-ID: <20260228173244.1509663-425-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260228173244.1509663-1-sashal@kernel.org> References: <20260228173244.1509663-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: stable@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: Tom Chung [ Upstream commit 64c94cd9be2e188ed07efeafa6a109bce638c967 ] [Why] System will try to apply idle power optimizations setting during system resume. But system power state is still in D3 state, and it will cause the idle power optimizations command not actually to be sent to DMUB and cause some platforms to go into IPS. [How] Set power state to D0 first before calling the dc_dmub_srv_apply_idle_power_optimizations(dm->dc, false) Reviewed-by: Nicholas Kazlauskas Signed-off-by: Tom Chung Signed-off-by: Wayne Lin Tested-by: Daniel Wheeler Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 150cc3fc7b2a9..b6eee94861477 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -3468,7 +3468,17 @@ static int dm_resume(struct amdgpu_ip_block *ip_block) struct dc_commit_streams_params commit_params = {}; if (dm->dc->caps.ips_support) { + if (!amdgpu_in_reset(adev)) + mutex_lock(&dm->dc_lock); + + /* Need to set POWER_STATE_D0 first or it will not execute + * idle_power_optimizations command to DMUB. + */ + dc_dmub_srv_set_power_state(dm->dc->ctx->dmub_srv, DC_ACPI_CM_POWER_STATE_D0); dc_dmub_srv_apply_idle_power_optimizations(dm->dc, false); + + if (!amdgpu_in_reset(adev)) + mutex_unlock(&dm->dc_lock); } if (amdgpu_in_reset(adev)) { -- 2.51.0