diff options
author | Kenneth Feng | 2019-03-27 04:46:31 +0100 |
---|---|---|
committer | Alex Deucher | 2019-06-22 01:59:25 +0200 |
commit | bca325280d1f17a84a8af70cb840ab5fcdb8d062 (patch) | |
tree | 21771fda35cd62058f14843025654407045a3871 /drivers/gpu/drm/amd/powerplay/smu_v11_0.c | |
parent | drm/amd/powerplay: add allowed feature mask for navi10 (diff) | |
download | kernel-qcow2-linux-bca325280d1f17a84a8af70cb840ab5fcdb8d062.tar.gz kernel-qcow2-linux-bca325280d1f17a84a8af70cb840ab5fcdb8d062.tar.xz kernel-qcow2-linux-bca325280d1f17a84a8af70cb840ab5fcdb8d062.zip |
drm/amd: add gfxoff support on navi10
add the gfxoff interface to navi10,it's disabled by default.
Signed-off-by: Kenneth Feng <kenneth.feng@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/powerplay/smu_v11_0.c')
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/smu_v11_0.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c index 7e09d1ff2050..d8379e421848 100644 --- a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c +++ b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c @@ -1547,6 +1547,21 @@ smu_v11_0_set_watermarks_for_clock_ranges(struct smu_context *smu, struct return ret; } +static int smu_v11_0_gfx_off_control(struct smu_context *smu, bool enable) +{ + int ret = 0; + + mutex_lock(&smu->mutex); + if (enable) + ret = smu_send_smc_msg(smu, SMU_MSG_AllowGfxOff); + else + ret = smu_send_smc_msg(smu, SMU_MSG_DisallowGfxOff); + mutex_unlock(&smu->mutex); + + return ret; +} + + static int smu_v11_0_get_clock_ranges(struct smu_context *smu, uint32_t *clock, PPCLK_e clock_select, @@ -1919,6 +1934,7 @@ static const struct smu_funcs smu_v11_0_funcs = { .set_fan_speed_percent = smu_v11_0_set_fan_speed_percent, .set_fan_speed_rpm = smu_v11_0_set_fan_speed_rpm, .set_xgmi_pstate = smu_v11_0_set_xgmi_pstate, + .gfx_off_control = smu_v11_0_gfx_off_control, }; void smu_v11_0_set_smu_funcs(struct smu_context *smu) |