Bug 151541

Summary: AMD hybrid graphics: [drm:evergreen_resume [radeon]] *ERROR* evergreen startup failed on resume
Product: Drivers Reporter: Dainius Masiliūnas (pastas4)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: NEW ---    
Severity: normal CC: alexdeucher
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.7.0 Subsystem:
Regression: No Bisected commit-id:
Attachments: dmesg
4.7.0-next-20160803 dmesg

Description Dainius Masiliūnas 2016-08-05 09:51:15 UTC
Created attachment 227711 [details]
dmesg

I am using an Acer Aspire 7560G laptop with muxless AMD-AMD hybrid graphics, officially 6520G integrated and 6720G dedicated:

00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] BeaverCreek [Radeon HD 6520G]
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Whistler [Radeon HD 6630M/6650M/6750M/7670M/7690M] (rev ff)

This configuration causes kernel errors whenever the dedicated card gets touched (usually by either running lspci - which takes a while to run - or turning the monitor off and back on again). Visually that shows up as flickering and parts of the screen not refreshing properly.

If in the BIOS I turn off the dedicated card completely, I don't have this problem any more.

I tested it with kernel 4.7 and 4.1, both had the same results. I'm running openSUSE Leap 42.1.

Here's the relevant part of dmesg (full dmesg is attached):

[  668.895509] radeon 0000:01:00.0: Refused to change power state, currently in D3
[  668.971201] radeon 0000:01:00.0: Refused to change power state, currently in D3
[  668.987293] radeon 0000:01:00.0: Refused to change power state, currently in D3
[  668.988397] radeon 0000:01:00.0: GPU softreset: 0x00000BDD
[  668.988405] radeon 0000:01:00.0:   GRBM_STATUS               = 0xFFFFFFFF
[  668.988412] radeon 0000:01:00.0:   GRBM_STATUS_SE0           = 0xFFFFFFFF
[  668.988417] radeon 0000:01:00.0:   GRBM_STATUS_SE1           = 0xFFFFFFFF
[  668.988423] radeon 0000:01:00.0:   SRBM_STATUS               = 0xFFFFFFFF
[  668.988428] radeon 0000:01:00.0:   SRBM_STATUS2              = 0xFFFFFFFF
[  668.988434] radeon 0000:01:00.0:   R_008674_CP_STALLED_STAT1 = 0xFFFFFFFF
[  668.988439] radeon 0000:01:00.0:   R_008678_CP_STALLED_STAT2 = 0xFFFFFFFF
[  668.988445] radeon 0000:01:00.0:   R_00867C_CP_BUSY_STAT     = 0xFFFFFFFF
[  668.988450] radeon 0000:01:00.0:   R_008680_CP_STAT          = 0xFFFFFFFF
[  668.988456] radeon 0000:01:00.0:   R_00D034_DMA_STATUS_REG   = 0xFFFFFFFF
[  670.587759] radeon 0000:01:00.0: Wait for MC idle timedout !
[  670.587762] radeon 0000:01:00.0: GRBM_SOFT_RESET=0xFFFFFFFF
[  670.587817] radeon 0000:01:00.0: SRBM_SOFT_RESET=0xFFFFFFFF
[  670.588971] radeon 0000:01:00.0:   GRBM_STATUS               = 0xFFFFFFFF
[  670.588973] radeon 0000:01:00.0:   GRBM_STATUS_SE0           = 0xFFFFFFFF
[  670.588976] radeon 0000:01:00.0:   GRBM_STATUS_SE1           = 0xFFFFFFFF
[  670.588978] radeon 0000:01:00.0:   SRBM_STATUS               = 0xFFFFFFFF
[  670.588981] radeon 0000:01:00.0:   SRBM_STATUS2              = 0xFFFFFFFF
[  670.588983] radeon 0000:01:00.0:   R_008674_CP_STALLED_STAT1 = 0xFFFFFFFF
[  670.588986] radeon 0000:01:00.0:   R_008678_CP_STALLED_STAT2 = 0xFFFFFFFF
[  670.588988] radeon 0000:01:00.0:   R_00867C_CP_BUSY_STAT     = 0xFFFFFFFF
[  670.588991] radeon 0000:01:00.0:   R_008680_CP_STAT          = 0xFFFFFFFF
[  670.588993] radeon 0000:01:00.0:   R_00D034_DMA_STATUS_REG   = 0xFFFFFFFF
[  675.594474] [drm:atom_op_jump [radeon]] *ERROR* atombios stuck in loop for more than 5secs aborting
[  675.594493] [drm:atom_execute_table_locked [radeon]] *ERROR* atombios stuck executing CE66 (len 62, WS 0, PS 0) @ 0xCE82
[  675.594511] [drm:atom_execute_table_locked [radeon]] *ERROR* atombios stuck executing BB66 (len 1036, WS 4, PS 0) @ 0xBC63
[  675.594529] [drm:atom_execute_table_locked [radeon]] *ERROR* atombios stuck executing BAFC (len 76, WS 0, PS 8) @ 0xBB04
[  675.594653] [drm:radeon_pm_resume [radeon]] *ERROR* radeon: dpm resume failed
[  677.087926] radeon 0000:01:00.0: Wait for MC idle timedout !
[  677.274849] radeon 0000:01:00.0: Wait for MC idle timedout !
[  677.292534] [drm] PCIE GART of 1024M enabled (table at 0x0000000000162000).
[  677.292646] radeon 0000:01:00.0: WB enabled
[  677.292651] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000040000c00 and cpu addr 0xffff8800c6e69c00
[  677.292654] radeon 0000:01:00.0: fence driver on ring 3 use gpu addr 0x0000000040000c0c and cpu addr 0xffff8800c6e69c0c
[  677.297315] radeon 0000:01:00.0: fence driver on ring 5 use gpu addr 0x0000000000072118 and cpu addr 0xffffc90001c32118
[  677.510244] [drm:r600_ring_test [radeon]] *ERROR* radeon: ring 0 test failed (scratch(0x8504)=0xFFFFFFFF)
[  677.510268] [drm:evergreen_resume [radeon]] *ERROR* evergreen startup failed on resume
[  677.510433] [drm:radeon_pm_resume [radeon]] *ERROR* radeon: dpm resume failed
[  682.513984] [drm:atom_op_jump [radeon]] *ERROR* atombios stuck in loop for more than 5secs aborting
[  682.514002] [drm:atom_execute_table_locked [radeon]] *ERROR* atombios stuck executing C510 (len 1136, WS 0, PS 0) @ 0xC53A
Comment 1 Dainius Masiliūnas 2016-08-05 10:05:02 UTC
Using radeon.dpm=0 doesn't change anything, only the "*ERROR* radeon: dpm resume failed" line is not there in that case.
Comment 2 Alex Deucher 2016-08-05 13:18:36 UTC
Does setting radeon.runpm=0 help?
Comment 3 Alex Deucher 2016-08-05 13:18:49 UTC
On the kernel command line in grub.
Comment 4 Dainius Masiliūnas 2016-08-05 16:08:38 UTC
Yes, it does. With that setting, there are no errors either, and lspci runs quickly.
Comment 5 Alex Deucher 2016-08-05 18:15:29 UTC
Does it work any better with kernel 4.8?
Comment 6 Dainius Masiliūnas 2016-08-05 19:32:31 UTC
Created attachment 227741 [details]
4.7.0-next-20160803 dmesg

No. I tried the linux-next tree and it gave me the same errors even during boot itself. dmesg is attached.