Bug 212333

Summary: Bisected: 5.11.7 breaks amdgpu resume from S3
Product: Drivers Reporter: Timo Valtoaho (timo.valtoaho)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: RESOLVED CODE_FIX    
Severity: normal CC: alexdeucher
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: 5.11.7 Subsystem:
Regression: No Bisected commit-id:
Attachments: Working kernel config with CONFIG_AMD_PMC is not set
git bisect log
lspci

Description Timo Valtoaho 2021-03-18 16:48:01 UTC
Created attachment 295921 [details]
Working kernel config with CONFIG_AMD_PMC is not set

After upgrading kernel 5.11.6 => 5.11.7 my Asus Vivobook S14 (Model M433I, Ryzen 5 4500U), resume from S3 suspend is broken.

Asus has disabled S3 completely, it is not shown in BIOS/UEFI at all. I have modified DSDT table which works fine providing working S3.

Now, after upgrade, suspend seems to happen just fine but resume gives me scrambled screen for few seconds, then screen goes completely black and mouse cursor shows up and is fully alive.I have to do a hard reboot to get away.

Bisecting led to this:

# first bad commit: [084b4f3304f923e39e64216a818a8bbf398dd896] drm/amdgpu: fix S0ix handling when the CONFIG_AMD_PMC=m

When I change "CONFIG_AMD_PMC is not set" all is working again. CONFIG_AMD_PMC=y also breaks resume. All of this applies also to 5.12-rc3 which I tested too.

Also, removing modified DSDT and using S2idle instead of deep, is broken too. It has never worked on this laptop. Now s2idle suspends, but resume scrambles screen for few seconds, then it works fine on first round. Suspending second time will end up on black screen on resume and I have to hard reboot.

OS is Kubuntu 20.10 and firmware is the latest (linux-firmware package v1.195) taken from next release.
Comment 1 Timo Valtoaho 2021-03-18 16:50:06 UTC
Created attachment 295923 [details]
git bisect log
Comment 2 Timo Valtoaho 2021-03-18 16:51:40 UTC
Created attachment 295927 [details]
lspci
Comment 3 Alex Deucher 2021-03-18 16:54:23 UTC
See this page for more info on getting S0ix working:
https://gitlab.freedesktop.org/drm/amd/-/issues/1230
Comment 4 Timo Valtoaho 2021-06-04 18:56:44 UTC
The link above helps. Suspend (S0ix) seems to work fine. Every now and then I need to hard reboot my laptop, I can't find any logic for that.

One minor issue left. When ACPI events (charging and battery gets full) occur while suspended, I need to close and reopen the lid on resume if I have suspended using power button.

Vanilla kernels 5.12.x work like described with these 6 patches applied:

https://gitlab.freedesktop.org/agd5f/linux/-/commits/s0ix-8