Re: [PATCH] dm/amd/pm: Fix problems with reboot/shutdown for some SMU 13.0.4/13.0.11 users

2024-05-03 Thread Alex Deucher
On Thu, May 2, 2024 at 3:22 PM Mario Limonciello
 wrote:
>
> Limit the workaround introduced by commit 31729e8c21ec ("drm/amd/pm: fixes
> a random hang in S4 for SMU v13.0.4/11") to only run in the s4 path.
>
> Cc: Tim Huang 
> Fixes: 31729e8c21ec ("drm/amd/pm: fixes a random hang in S4 for SMU 
> v13.0.4/11")
> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3351
> Signed-off-by: Mario Limonciello 

Acked-by: Alex Deucher 

> ---
> I tested this on SMU 13.0.4 for ~85 cycles with this script, BIOS 1.1.0.2a and
> didn't observe any hangs.
>
> ```
> #!/bin/sh
> echo test_resume > /sys/power/disk
> i=1
> while [ : ]; do
>
>   echo "Starting cycle $i"
>   echo disk > /sys/power/state
>   echo "Ending cycle $i"
>   i=$((i+1))
>   sleep 5
> done
> ```
>
>  drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c 
> b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c
> index 949131bd1ecb..4abfcd32747d 100644
> --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c
> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c
> @@ -226,7 +226,7 @@ static int smu_v13_0_4_system_features_control(struct 
> smu_context *smu, bool en)
> struct amdgpu_device *adev = smu->adev;
> int ret = 0;
>
> -   if (!en && !adev->in_s0ix) {
> +   if (!en && adev->in_s4) {
> /* Adds a GFX reset as workaround just before sending the
>  * MP1_UNLOAD message to prevent GC/RLC/PMFW from entering
>  * an invalid state.
> --
> 2.43.0
>


[PATCH] dm/amd/pm: Fix problems with reboot/shutdown for some SMU 13.0.4/13.0.11 users

2024-05-02 Thread Mario Limonciello
Limit the workaround introduced by commit 31729e8c21ec ("drm/amd/pm: fixes
a random hang in S4 for SMU v13.0.4/11") to only run in the s4 path.

Cc: Tim Huang 
Fixes: 31729e8c21ec ("drm/amd/pm: fixes a random hang in S4 for SMU v13.0.4/11")
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3351
Signed-off-by: Mario Limonciello 
---
I tested this on SMU 13.0.4 for ~85 cycles with this script, BIOS 1.1.0.2a and
didn't observe any hangs.

```
#!/bin/sh
echo test_resume > /sys/power/disk
i=1
while [ : ]; do

  echo "Starting cycle $i"
  echo disk > /sys/power/state
  echo "Ending cycle $i"
  i=$((i+1))
  sleep 5
done
```

 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c
index 949131bd1ecb..4abfcd32747d 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c
@@ -226,7 +226,7 @@ static int smu_v13_0_4_system_features_control(struct 
smu_context *smu, bool en)
struct amdgpu_device *adev = smu->adev;
int ret = 0;
 
-   if (!en && !adev->in_s0ix) {
+   if (!en && adev->in_s4) {
/* Adds a GFX reset as workaround just before sending the
 * MP1_UNLOAD message to prevent GC/RLC/PMFW from entering
 * an invalid state.
-- 
2.43.0