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 <[email protected]> know about it.
>From 39da038479a81a35a7f8af3ab2c90effd5c8eff1 Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Thu, 18 Sep 2014 11:16:31 -0400
Subject: drm/radeon/dpm: fix resume on mullins
From: Alex Deucher <[email protected]>
commit 39da038479a81a35a7f8af3ab2c90effd5c8eff1 upstream.
Need to properly disable nb dpm on dpm disable.
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
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 [email protected]
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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html