Bug 66940

Summary: Mobility Radeon HD 5650 doesn't resume from suspend on kernel 3.11 (linus and drm_next)
Product: DRI Reporter: Marco Trevisan (Treviño) <mail>
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high CC: berny156, egorov_egor, k.scherban, pmenzel+bugs.freedesktop.org
Version: XOrg git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg
none
/proc/acpi/wakeup
none
/sys/power/pm_trace_dev_match
none
full dmesg of suspend/resume cycle
none
lspci
none
.config for 3.11-rc5 none

Description Marco Trevisan (Treviño) 2013-07-15 19:17:27 UTC
Created attachment 82459 [details]
dmesg

I've tried running linux 3.11 from both linus and drm_next branches, but when using the radeon drivers it's impossible to resume from suspension.

It's quite sure that the problem is in radeon module, because unloading it (and switching to my intel card with vgaswitcheroo) works fine.
Also, enabling the pm_trace sys-node it highlights that the radeon device caused the freeze:

from dmesg:
[    1.286810]   Magic number: 0:660:725
[    1.286815]   hash matches /home/marco/Dev/debs/linux/drivers/base/power/main.c:575
[    1.286829] block loop5: hash matches
[    1.286867] pci 0000:01:00.0: hash matches

               ^ This is the PCI id of my radeon card

cat /sys/power/pm_trace_dev_match:
block
radeon


This is a regression, since linux 3.10 works well.
Comment 1 Marco Trevisan (Treviño) 2013-07-15 19:18:25 UTC
Created attachment 82460 [details]
/proc/acpi/wakeup
Comment 2 Marco Trevisan (Treviño) 2013-07-15 19:18:58 UTC
Created attachment 82461 [details]
/sys/power/pm_trace_dev_match
Comment 3 Alex Deucher 2013-07-15 19:45:24 UTC
Can you bisect?
Comment 4 Marco Trevisan (Treviño) 2013-07-15 19:50:32 UTC
(In reply to comment #3)
> Can you bisect?

I can do that, but in few days...
Comment 5 Bernhard Held 2013-07-31 22:42:23 UTC
I've got a HD 5450 and can't resume with 3.10 or 3.11 as soon as I install CYPRESS_uvd.bin from http://people.freedesktop.org/~agd5f/radeon_ucode/.

There seems to be an oops during suspend, but I couldn't yet catch it. Will try later.
Comment 6 Konstantin Shcherban 2013-08-03 18:26:35 UTC
Can approve i have same issue on my Toshiba L650D-120 with only discrete HD5650 even if radeon module is not loaded resume does not work well.
Comment 7 Alex Deucher 2013-08-04 15:54:46 UTC
Can you try with my drm-fixes-3.11 branch:
http://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-fixes-3.11
Comment 8 Marco Trevisan (Treviño) 2013-08-05 09:45:29 UTC
(In reply to comment #7)
> Can you try with my drm-fixes-3.11 branch:
> http://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-fixes-3.11

Cool, that seems to work... I can't test this with HDMI screen plugged now, though (I don't remember if that was relevant). However I've noticed that the VT switch on resume seems slower than it used to be.
Comment 9 Konstantin Shcherban 2013-08-06 06:36:04 UTC
(In reply to comment #7)
> Can you try with my drm-fixes-3.11 branch:
> http://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-fixes-3.11

Resume now works for me as well with drm-fixes-3.11 branch, thanks Alex.
Comment 10 Bernhard Held 2013-08-16 21:33:49 UTC
My mileage varies with 3.11-rc5. In rare case suspend/resume works. Most of the time suspend shows:

[   34.926841] Freezing user space processes ... (elapsed 0.001 seconds) done.
[   35.075229] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[   45.908028] radeon 0000:01:00.0: GPU lockup CP stall for more than 10000msec
[   45.908031] radeon 0000:01:00.0: GPU lockup (waiting for 0x0000000000000004 last fence id 0x0000000000000002)
[   45.908033] [drm:r600_uvd_ib_test] *ERROR* radeon: fence wait failed (-35).
[   45.908037] [drm:radeon_ib_ring_tests] *ERROR* radeon: failed testing IB on ring 5 (-35).

During resume the PC either freezes after "PM: Read xxxxx kbytes in y.yy seconds" or dmesg shows:

[    4.879714] Freezing user space processes ... (elapsed 0.000 seconds) done.
[    5.190862] PM: Using 3 thread(s) for decompression.
[    5.190862] PM: Loading and decompressing image data (99920 pages)...
[    5.466130] PM: Image loading progress:   0%
[    5.774497] PM: Image loading progress:  10%
[    5.868650] PM: Image loading progress:  20%
[    5.951424] PM: Image loading progress:  30%
[    6.044454] PM: Image loading progress:  40%
[    6.158650] PM: Image loading progress:  50%
[    6.249908] PM: Image loading progress:  60%
[    6.336868] PM: Image loading progress:  70%
[    6.421403] PM: Image loading progress:  80%
[    6.508071] PM: Image loading progress:  90%
[    6.592575] PM: Image loading done.
[    6.596124] PM: Read 399680 kbytes in 1.39 seconds (287.53 MB/s)
[   35.608037] usb usb1: root hub lost power or was reset
[   35.608038] usb usb2: root hub lost power or was reset
[   35.948432] xhci_hcd 0000:03:00.0: xHCI xhci_drop_endpoint called with disabled ep ffff8801a5f8e880
[   45.992029] radeon 0000:01:00.0: GPU lockup CP stall for more than 10000msec
[   45.992032] radeon 0000:01:00.0: GPU lockup (waiting for 0x0000000000000004 last fence id 0x0000000000000002)
[   45.992034] [drm:r600_uvd_ib_test] *ERROR* radeon: fence wait failed (-35).
[   45.992037] [drm:radeon_ib_ring_tests] *ERROR* radeon: failed testing IB on ring 5 (-35).
[   46.548477] Restarting tasks ... done.

After this I can use the console and KDM is running, but X crashes at logon.

Without CYPRESS_uvd.bin suspend/resume works reliable.
CEDAR_me.bin, CEDAR_pfp.bin, CEDAR_rlc.bin, CEDAR_smc.bin and CYPRESS_uvd.bin are from git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git

I'm using a 2560x1440 console with Dual-DVI.
Comment 11 Bernhard Held 2013-08-16 21:35:46 UTC
Created attachment 84155 [details]
full dmesg of suspend/resume cycle
Comment 12 Bernhard Held 2013-08-16 21:37:20 UTC
Created attachment 84156 [details]
lspci
Comment 13 Bernhard Held 2013-08-16 21:39:00 UTC
Created attachment 84157 [details]
.config for 3.11-rc5
Comment 14 Bernhard Held 2014-09-11 21:18:58 UTC
Suspend works again with my HD 5450 using branch 'drm-next-3.18' of 
git://people.freedesktop.org/~airlied/linux!

Previously resume consistently produced this output with a subsequent crash of the X-server:

[ 7025.164024] radeon 0000:01:00.0: ring 5 stalled for more than 10000msec
[ 7025.164030] radeon 0000:01:00.0: GPU lockup (waiting for 0x000000000000000a last fence id 0x0000000000000002 on ring 5)
[ 7025.164034] [drm:uvd_v1_0_ib_test] *ERROR* radeon: fence wait failed (-35).
[ 7025.164040] [drm:radeon_ib_ring_tests] *ERROR* radeon: failed testing IB on ring 5 (-35).

Thanks for finally resolving this problem!
Comment 15 Paul Menzel 2018-04-10 10:51:25 UTC
Reading the comments, it looks like this was resolved. If not, please re-open.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.