Wednesday, November 06, 2013

Kernel 3.12 Radeon DPM support

1. installed 3.12 on Ubuntu 12.04 using this:

http://lintut.com/how-to-install-kernel-3-12-final-release-on-3264-bit-ubuntu-linux-mint-and-debian-linux/
wget -c kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-headers-3.12.0-031200-generic_3.12.0-031200.201311031935_amd64.deb
wget -c kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-image-3.12.0-031200-generic_3.12.0-031200.201311031935_amd64.deb
wget -c kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-saucy/linux-headers-3.12.0-031200_3.12.0-031200.201311031935_all.deb
sudo dpkg -i linux-headers-3.12*.deb linux-image-3.12*.deb
 
  
diego@ruidosa:~$ uname -r
3.12.0-031200-generic


 2. enabled Radeon DPM support using kernel parms:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.dpm=1"
sudo update-grub

3. downloaded new AMD firmware from here:

people.freedesktop.org/~agd5f/radeon_ucode/

diego@ruidosa:~$ cd radeon/
diego@ruidosa:~/radeon$ ls *.bin
RV710_uvd.bin  RV730_smc.bin


4. copied this files to /lib/firmware/radeon:

 diego@ruidosa:~/radeon$ ls /lib/firmware/radeon/RV7*
/lib/firmware/radeon/RV710_me.bin   /lib/firmware/radeon/RV710_uvd.bin  /lib/firmware/radeon/RV730_pfp.bin  /lib/firmware/radeon/RV770_me.bin
/lib/firmware/radeon/RV710_pfp.bin  /lib/firmware/radeon/RV730_me.bin   /lib/firmware/radeon/RV730_smc.bin  /lib/firmware/radeon/RV770_pfp.bin


5. reboot


6. check dmseg:

diego@ruidosa:~/radeon$ dmesg | grep radeon
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.12.0-031200-generic root=UUID=28c7f0a9-f910-4aac-9c20-478055dac758 ro quiet splash radeon.dpm=1 vt.handoff=7
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.12.0-031200-generic root=UUID=28c7f0a9-f910-4aac-9c20-478055dac758 ro quiet splash radeon.dpm=1 vt.handoff=7
[   12.913107] [drm] radeon kernel modesetting enabled.
[   12.916385] radeon 0000:01:00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M used)
[   12.916388] radeon 0000:01:00.0: GTT: 1024M 0x0000000040000000 - 0x000000007FFFFFFF
[   12.924061] [drm] radeon: 1024M of VRAM memory ready
[   12.924063] [drm] radeon: 1024M of GTT memory ready.
[   13.341936] radeon 0000:01:00.0: WB enabled
[   13.341941] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000040000c00 and cpu addr 0xffff8800b6029c00
[   13.341944] radeon 0000:01:00.0: fence driver on ring 3 use gpu addr 0x0000000040000c0c and cpu addr 0xffff8800b6029c0c
[   13.342733] radeon 0000:01:00.0: fence driver on ring 5 use gpu addr 0x000000000005c598 and cpu addr 0xffffc9000521c598
[   13.342768] radeon 0000:01:00.0: irq 48 for MSI/MSI-X
[   13.342785] radeon 0000:01:00.0: radeon: using MSI.
[   13.342817] [drm] radeon: irq initialized.
[   23.691263] [drm:rv770_startup] *ERROR* radeon: failed initializing UVD (-1).
[   23.716039] [drm] radeon atom DIG backlight initialized
[   23.722646] [drm] radeon: dpm initialized
[   24.715909] fbcon: radeondrmfb (fb0) is primary device
[   24.775539] radeon 0000:01:00.0: fb0: radeondrmfb frame buffer device
[   24.775542] radeon 0000:01:00.0: registered panic notifier
[   24.775554] [drm] Initialized radeon 2.34.0 20080528 for 0000:01:00.0 on minor 0



diego@ruidosa:~$ sudo cat /sys/kernel/debug/dri/64/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 22000 mclk: 40000 vddc: 1000
diego@ruidosa:~$
diego@ruidosa:~$ cat /sys/class/drm/card0/device/power_dpm_state
balanced



This works also for kernel 3.11.
I've tested it using a 3.11 kernel compiled by me.



References:

http://askubuntu.com/questions/324733/how-to-enable-the-radeon-dynamic-power-management-feature-in-ubuntu-13-04

http://www.phoronix.com/scan.php?page=news_item&px=MTQyNDE


 

2 comments:

Anonymous said...

hi.
I'm using 3.12+mesa9.2 on multiple versions of ubuntu. was straightforward, pulling the 3.12 kernel out of mainline kernel ppa.

ubuntu 13.10 already provides an up-to-date mesa version as time of writing. on 12.04 you want to add oibaf/graphic-drivers ppa

for ubuntu 12.04 it was somehow necessary to manually build an updated initramfs with the aproppriate modules placed in /lib/firmware/radeon beforehand.

I might have overlooked something, but these were the appropriate additional steps to gain that sweet..

[drm] radeon: dpm initialized
[drm] UVD initialized successfully.

[...]

mplayer -vc ffh264vdpau

VO: [vdpau] 512x288 => 512x288 H.264 VDPAU acceleration
[VD_FFMPEG] XVMC-accelerated MPEG-2.

Diego said...

Thank you very much.
I'll try that.

Regards,
Diego