Bug 87457

Summary: [Hawaii XT] 290x reclocking problems
Product: DRI Reporter: Sebastian Parborg <darkdefende>
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: bugs.freedesktop, darkdefende
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
xorg log
none
dmesg log
none
290x vbios
none
possible fix none

Description Sebastian Parborg 2014-12-18 20:26:05 UTC
Created attachment 111007 [details]
xorg log

I'm having problems with reclocking on a ASUS Radeon R9 290X DirectCU II: 
http://www.asus.com/Graphics_Cards/R9290XDC2OC4GD5/

mclk reclocking seems to work as expected but sclk stays at the "low" level no matter what.

I opened a new bug report because it seems like the problem is solved for 290 cards:
https://bugs.freedesktop.org/show_bug.cgi?id=82201

I've attached the xorg log, dmesg log and the cards vbios.

I updated the vbios to the latest version from asus to see if it solved the problem. Sadly it did not.
Comment 1 Sebastian Parborg 2014-12-18 20:26:27 UTC
Created attachment 111008 [details]
dmesg log
Comment 2 Sebastian Parborg 2014-12-18 20:26:54 UTC
Created attachment 111009 [details]
290x vbios
Comment 3 John Brooks 2015-01-07 04:05:48 UTC
I have the same problem. Output from radeon_pm_info when the state is supposed to be set to high:

uvd    disabled
vce    disabled
power level avg    sclk: 30000 mclk: 126000

Some relevant dmesg output:

[    1.744912] [drm] radeon kernel modesetting enabled.
[    1.746987] checking generic (d0000000 e10000) vs hw (d0000000 10000000)
[    1.746990] fb: switching to radeondrmfb from VESA VGA
[    1.747009] Console: switching to colour dummy device 80x25
[    1.747325] [drm] initializing kernel modesetting (HAWAII 0x1002:0x67B1 0x1043:0x0470).
[    1.747337] [drm] register mmio base: 0xFBD80000
[    1.747338] [drm] register mmio size: 262144
[    1.747342] [drm] doorbell mmio base: 0xCF800000
[    1.747343] [drm] doorbell mmio size: 8388608
[    1.747365] radeon 0000:01:00.0: Invalid ROM contents
[    1.747977] ATOM BIOS: 67B1HB.15.41.0.2.AS04L
[    1.748038] radeon 0000:01:00.0: VRAM: 4096M 0x0000000000000000 - 0x00000000FFFFFFFF (4096M used)
[    1.748039] radeon 0000:01:00.0: GTT: 1024M 0x0000000100000000 - 0x000000013FFFFFFF
[    1.748041] [drm] Detected VRAM RAM=4096M, BAR=256M
[    1.748042] [drm] RAM width 512bits DDR
[    1.748115] [TTM] Zone  kernel: Available graphics memory: 4087274 kiB
[    1.748116] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[    1.748117] [TTM] Initializing pool allocator
[    1.748120] [TTM] Initializing DMA pool allocator
[    1.748136] [drm] radeon: 4096M of VRAM memory ready
[    1.748137] [drm] radeon: 1024M of GTT memory ready.
[    1.748147] [drm] Loading hawaii Microcode
[    1.748302] [drm] Internal thermal controller with fan control
[    1.748342] [drm] probing gen 2 caps for device 1022:960b = 1300c82/0
[    1.763278] [drm:ci_dpm_init [radeon]] *ERROR* Invalid PCC GPIO: 13!
[    1.763282] == power state 0 ==
[    1.763283]  ui class: none
[    1.763284]  internal class: boot 
[    1.763285]  caps: 
[    1.763286]  uvd    vclk: 0 dclk: 0
[    1.763287]          power level 0    sclk: 30000 mclk: 15000 pcie gen: 2 pcie lanes: 8
[    1.763288]  status: c r b 
[    1.763289] == power state 1 ==
[    1.763290]  ui class: performance
[    1.763290]  internal class: none
[    1.763291]  caps: 
[    1.763292]  uvd    vclk: 0 dclk: 0
[    1.763293]          power level 0    sclk: 30000 mclk: 15000 pcie gen: 2 pcie lanes: 8
[    1.763294]          power level 1    sclk: 100000 mclk: 126000 pcie gen: 2 pcie lanes: 8
[    1.763295]  status: 
[    1.771519] [drm] radeon: dpm initialized
Comment 4 John Brooks 2015-01-07 04:09:31 UTC
Forgot to mention my setup. I'm using an ASUS R9 290, a Linux Mint base system tracking the xorg-edgers PPA, and kernel 3.19-rc3 from here: http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19-rc3-vivid/

I have the latest linux-firmware.

The mclk began changing after I upgraded from 3.18.1, but the sclk is still stuck at the lowest level.
Comment 5 Alex Deucher 2015-02-12 05:44:34 UTC
Created attachment 113387 [details] [review]
possible fix

The attached patch should fix the bug.
Comment 6 Sebastian Parborg 2015-02-12 08:15:15 UTC
Seems to have fixed the issue for me. However, I only did some quick tests, so perhaps leave this bug open for a few more days so I can test if there are still some corner cases where it breaks.

Thank you so muck Alex! :)
Comment 7 John Brooks 2015-02-13 16:27:21 UTC
(In reply to Alex Deucher from comment #5)
> Created attachment 113387 [details] [review] [review]
> possible fix
> 
> The attached patch should fix the bug.

It works beautifully here on my R9 290. Thanks!
Comment 8 Sebastian Parborg 2015-02-17 13:53:59 UTC
I've been using it for a few days now. It seems like the reclocking issue is completely fixed for me.

I'll close this bug as it seems to work flawlessly for Brooks too.

Thanks again Alex.

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.