AMD General

Reviewed-by: Kenneth Feng <[email protected]>


-----Original Message-----
From: Wang, Yang(Kevin) <[email protected]>
Sent: Monday, May 25, 2026 9:08 AM
To: [email protected]
Cc: Deucher, Alexander <[email protected]>; Zhang, Hawking 
<[email protected]>; Feng, Kenneth <[email protected]>
Subject: [PATCH] drm/amd/pm: apply SMU 13.0.10 workaround during MP1 unload

On SMU v13.0.10, sending PrepareMp1ForUnload with the default parameter may 
leave the device in an inaccessible state. This can affect runtime power 
management and partial PnP flows.
Pass the required workaround parameter, 0x55, when preparing MP1 for unload on 
SMU v13.0.10. Keep the existing behavior for other SMU versions.

Closes: https://gitlab.freedesktop.org/drm/amd/-/work_items/5133

Signed-off-by: Yang Wang <[email protected]>
---
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
index 9e74a5c4be43..8781cd9f10e0 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c
@@ -2806,11 +2806,15 @@ static void smu_v13_0_0_i2c_control_fini(struct 
smu_context *smu)  static int smu_v13_0_0_set_mp1_state(struct smu_context *smu,
                                     enum pp_mp1_state mp1_state)
 {
+       uint32_t param;
        int ret;

        switch (mp1_state) {
        case PP_MP1_STATE_UNLOAD:
-               ret = smu_cmn_set_mp1_state(smu, mp1_state);
+               param = amdgpu_ip_version(smu->adev, MP1_HWIP, 0) == 
IP_VERSION(13, 0, 10) ?
+                       0x55 : 0x00;
+               ret = smu_cmn_send_smc_msg_with_param(smu, 
SMU_MSG_PrepareMp1ForUnload,
+                                                     param, NULL);
                break;
        default:
                /* Ignore others */
--
2.47.3

Reply via email to