This is a note to let you know that I've just added the patch titled drm/radeon/dpm: fix resume on mullins to the 3.16-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: drm-radeon-dpm-fix-resume-on-mullins.patch and it can be found in the queue-3.16 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 39da038479a81a35a7f8af3ab2c90effd5c8eff1 Mon Sep 17 00:00:00 2001 From: Alex Deucher <alexander.deucher@xxxxxxx> Date: Thu, 18 Sep 2014 11:16:31 -0400 Subject: drm/radeon/dpm: fix resume on mullins From: Alex Deucher <alexander.deucher@xxxxxxx> commit 39da038479a81a35a7f8af3ab2c90effd5c8eff1 upstream. Need to properly disable nb dpm on dpm disable. Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/gpu/drm/radeon/kv_dpm.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) --- a/drivers/gpu/drm/radeon/kv_dpm.c +++ b/drivers/gpu/drm/radeon/kv_dpm.c @@ -33,6 +33,8 @@ #define KV_MINIMUM_ENGINE_CLOCK 800 #define SMC_RAM_END 0x40000 +static int kv_enable_nb_dpm(struct radeon_device *rdev, + bool enable); static void kv_init_graphics_levels(struct radeon_device *rdev); static int kv_calculate_ds_divider(struct radeon_device *rdev); static int kv_calculate_nbps_level_settings(struct radeon_device *rdev); @@ -1295,6 +1297,9 @@ void kv_dpm_disable(struct radeon_device { kv_smc_bapm_enable(rdev, false); + if (rdev->family == CHIP_MULLINS) + kv_enable_nb_dpm(rdev, false); + /* powerup blocks */ kv_dpm_powergate_acp(rdev, false); kv_dpm_powergate_samu(rdev, false); @@ -1769,15 +1774,24 @@ static int kv_update_dfs_bypass_settings return ret; } -static int kv_enable_nb_dpm(struct radeon_device *rdev) +static int kv_enable_nb_dpm(struct radeon_device *rdev, + bool enable) { struct kv_power_info *pi = kv_get_pi(rdev); int ret = 0; - if (pi->enable_nb_dpm && !pi->nb_dpm_enabled) { - ret = kv_notify_message_to_smu(rdev, PPSMC_MSG_NBDPM_Enable); - if (ret == 0) - pi->nb_dpm_enabled = true; + if (enable) { + if (pi->enable_nb_dpm && !pi->nb_dpm_enabled) { + ret = kv_notify_message_to_smu(rdev, PPSMC_MSG_NBDPM_Enable); + if (ret == 0) + pi->nb_dpm_enabled = true; + } + } else { + if (pi->enable_nb_dpm && pi->nb_dpm_enabled) { + ret = kv_notify_message_to_smu(rdev, PPSMC_MSG_NBDPM_Disable); + if (ret == 0) + pi->nb_dpm_enabled = false; + } } return ret; @@ -1864,7 +1878,7 @@ int kv_dpm_set_power_state(struct radeon } kv_update_sclk_t(rdev); if (rdev->family == CHIP_MULLINS) - kv_enable_nb_dpm(rdev); + kv_enable_nb_dpm(rdev, true); } } else { if (pi->enable_dpm) { @@ -1889,7 +1903,7 @@ int kv_dpm_set_power_state(struct radeon } kv_update_acp_boot_level(rdev); kv_update_sclk_t(rdev); - kv_enable_nb_dpm(rdev); + kv_enable_nb_dpm(rdev, true); } } Patches currently in stable-queue which might be from alexander.deucher@xxxxxxx are queue-3.16/drm-radeon-tweak-accel_working2-query-for-hawaii.patch queue-3.16/drm-radeon-atom-add-new-voltage-fetch-function-for-hawaii.patch queue-3.16/drm-radeon-don-t-reset-dma-on-ni-si-init.patch queue-3.16/drm-radeon-dpm-fix-resume-on-mullins.patch queue-3.16/drm-radeon-don-t-reset-sdma-on-cik-init.patch queue-3.16/drm-radeon-fix-pm-handling-in-radeon_gpu_reset.patch queue-3.16/drm-radeon-fix-semaphore-value-init.patch queue-3.16/drm-radeon-add-missing-lines-to-ci_set_thermal_temperature_range.patch queue-3.16/drm-radeon-fix-active_cu-mask-on-si-and-cik-after-re-init-v3.patch queue-3.16/drm-radeon-dpm-handle-voltage-info-fetching-on-hawaii.patch queue-3.16/drm-radeon-re-enable-dpm-by-default-on-btc.patch queue-3.16/drm-radeon-properly-document-reloc-priority-mask.patch queue-3.16/drm-radeon-handle-broken-disabled-rb-mask-gracefully-6xx-7xx-v2.patch queue-3.16/drm-radeon-fix-active-cu-count-for-si-and-cik.patch queue-3.16/drm-radeon-dpm-select-the-appropriate-vce-power-state-for-kv-kb-ml.patch queue-3.16/drm-radeon-re-enable-dpm-by-default-on-cayman.patch queue-3.16/drm-radeon-set-vm-base-addr-using-the-pfp-v2.patch queue-3.16/drm-radeon-add-connector-quirk-for-fujitsu-board.patch queue-3.16/drm-radeon-add-ability-to-get-and-change-dpm-state-when-radeon-px-card-is-turned-off.patch queue-3.16/drm-radeon-cik-use-a-separate-counter-for-cp-init-timeout.patch queue-3.16/drm-radeon-load-the-lm63-driver-for-an-lm64-thermal-chip.patch queue-3.16/drm-radeon-dpm-set-the-thermal-type-properly-for-special-configs.patch queue-3.16/drm-radeon-don-t-reset-dma-on-r6xx-evergreen-init.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html