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/Radeon | Assignee: | 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: |
|
Created attachment 82460 [details]
/proc/acpi/wakeup
Created attachment 82461 [details]
/sys/power/pm_trace_dev_match
Can you bisect? (In reply to comment #3) > Can you bisect? I can do that, but in few days... 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. 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. Can you try with my drm-fixes-3.11 branch: http://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-fixes-3.11 (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. (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. 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. Created attachment 84155 [details]
full dmesg of suspend/resume cycle
Created attachment 84156 [details]
lspci
Created attachment 84157 [details]
.config for 3.11-rc5
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! 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.
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.