https://bugs.freedesktop.org/show_bug.cgi?id=96326
--- Comment #8 from Jan Ziak 0xe2.0x9a.0x9b@gmail.com --- (In reply to Alex Deucher from comment #7)
(In reply to Jan Ziak from comment #6)
(In reply to Alex Deucher from comment #3)
Please attach your xorg log and dmesg output.
Upstream Linux kernel does not support variable mclk on R9 390. I enabled variable mclk by patching some code in drivers/gpu/drm/amd/amdgpu/ (mostly ci_dpm.c).
What patch(es) did you use?
I added a function based on ci_dpm_force_state_mclk() in ci_dpm.c.
mask is 0x3.
---- static int ci_dpm_force_state_mclk_mask(struct amdgpu_device *adev, u32 mask) { struct ci_power_info *pi = ci_get_pi(adev);
if (!pi->mclk_dpm_key_disabled) { PPSMC_Result smc_result = amdgpu_ci_send_msg_to_smc_with_parameter(adev, PPSMC_MSG_MCLKDPM_SetEnabledMask, mask); printk("[atomsymbol] %s:%d: mask=0x%X, ok=%d\n", __FUNCTION__, __LINE__, mask, smc_result == PPSMC_Result_OK); if (smc_result != PPSMC_Result_OK) return -EINVAL; } return 0; } ----
/sys/class/drm/card?/device/power_dpm_force_performance_level is set to "auto".