Undervolting RX480 from amdgpu

Donny Yang work at kota.moe
Fri Jan 13 09:07:19 UTC 2017


Hello

A phoronix user reported success undervolting their RX470 under amdgpu-pro (
https://www.phoronix.com/forums/forum/linux-graphics-x-org-drivers/amd-linux/918649-underclocking-undervolting-the-rx-470-with-amdgpu-pro-success),
but I noticed they only edited a file that is in the non-pro version as
well.

So I performed a similar edit (see below patch) for my RX480 (specifically,
a MSI Gaming X 8GB one) that should immediately cause instabilities at the
higher DPM levels, yet did not happen after installing and rebooting.
Further more, FPS and temperatures stayed the same, suggesting that it
didn't have any effect at all. The printk was working though, so I know
that the driver installed correctly.

What could be going wrong? Does amdgpu-pro do some things that "unlocks"
voltage editing, that the normal amdgpu doesn't?

diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smc.c
b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smc.c
index 4e1c36e9..7a94e09e 100644
--- a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smc.c
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smc.c
@@ -91,7 +91,11 @@ static int polaris10_get_dependency_volt_by_clk(struct
pp_hwmgr *hwmgr,
        for (i = 0; i < dep_table->count; i++) {
                /* find first sclk bigger than request */
                if (dep_table->entries[i].clk >= clock) {
-                       *voltage |= (dep_table->entries[i].vddc *
+                       printk("%u: depends on %umV\n", clock,
dep_table->entries[i].vddc);
+                       if (dep_table->entries[i].vddc > 881)
+                               *voltage |= (881 * VOLTAGE_SCALE) <<
VDDC_SHIFT;
+                       else
+                               *voltage |= (dep_table->entries[i].vddc *
                                        VOLTAGE_SCALE) << VDDC_SHIFT;
                        if (SMU7_VOLTAGE_CONTROL_NONE ==
data->vddci_control)
                                *voltage |=
(data->vbios_boot_state.vddci_bootup_value *
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20170113/ea80ef1a/attachment-0001.html>


More information about the amd-gfx mailing list