aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0106-drm-amd-powerplay-Add-PPLib-debug-print-macro.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0106-drm-amd-powerplay-Add-PPLib-debug-print-macro.patch')
-rw-r--r--common/recipes-kernel/linux/files/0106-drm-amd-powerplay-Add-PPLib-debug-print-macro.patch124
1 files changed, 124 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0106-drm-amd-powerplay-Add-PPLib-debug-print-macro.patch b/common/recipes-kernel/linux/files/0106-drm-amd-powerplay-Add-PPLib-debug-print-macro.patch
new file mode 100644
index 00000000..ca2e0519
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0106-drm-amd-powerplay-Add-PPLib-debug-print-macro.patch
@@ -0,0 +1,124 @@
+From e05e02d7509d4079d4d6f2f721bd7c165332940d Mon Sep 17 00:00:00 2001
+From: David Rokhvarg <David.Rokhvarg@amd.com>
+Date: Thu, 19 Nov 2015 14:45:39 -0500
+Subject: [PATCH 0106/1110] drm/amd/powerplay: Add PPLib debug print macro.
+
+- The macro is silent by default.
+- Use the macro to print Display Configuration - related changes.
+
+Signed-off-by: David Rokhvarg <David.Rokhvarg@amd.com>
+---
+ drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 35 +++++++++++++++++++++++---
+ drivers/gpu/drm/amd/powerplay/inc/pp_debug.h | 9 ++++++-
+ 2 files changed, 40 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c
+index c7116ae..13b5bef 100644
+--- a/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c
++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c
+@@ -38,7 +38,7 @@
+ #include "cz_hwmgr.h"
+ #include "power_state.h"
+ #include "cz_clockpowergating.h"
+-
++#include "pp_debug.h"
+
+ #define ixSMUSVI_NB_CURRENTVID 0xD8230044
+ #define CURRENT_NB_VID_MASK 0xff000000
+@@ -821,10 +821,12 @@ static int cz_tf_enable_nb_dpm(struct pp_hwmgr *hwmgr,
+ void *storage, int result)
+ {
+ int ret = 0;
++
+ struct cz_hwmgr *cz_hwmgr = (struct cz_hwmgr *)(hwmgr->backend);
+ unsigned long dpm_features = 0;
+
+ if (!cz_hwmgr->is_nb_dpm_enabled) {
++ PP_DBG_LOG("enabling ALL SMU features.\n");
+ dpm_features |= NB_DPM_MASK;
+ ret = smum_send_msg_to_smc_with_parameter(
+ hwmgr->smumgr,
+@@ -842,14 +844,19 @@ static int cz_nbdpm_pstate_enable_disable(struct pp_hwmgr *hwmgr, bool enable, b
+ struct cz_hwmgr *hw_data = (struct cz_hwmgr *)(hwmgr->backend);
+
+ if (hw_data->is_nb_dpm_enabled) {
+- if (enable)
++ if (enable) {
++ PP_DBG_LOG("enable Low Memory PState.\n");
++
+ return smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
+ PPSMC_MSG_EnableLowMemoryPstate,
+ (lock ? 1 : 0));
+- else
++ } else {
++ PP_DBG_LOG("disable Low Memory PState.\n");
++
+ return smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
+ PPSMC_MSG_DisableLowMemoryPstate,
+ (lock ? 1 : 0));
++ }
+ }
+
+ return 0;
+@@ -1522,11 +1529,30 @@ cz_print_current_perforce_level(struct pp_hwmgr *hwmgr, struct seq_file *m)
+ }
+ }
+
++static void cz_hw_print_display_cfg(
++ const struct amd_pp_display_configuration *display_cfg)
++{
++ PP_DBG_LOG("New Display Configuration:\n");
++
++ PP_DBG_LOG(" cpu_cc6_disable: %d\n",
++ display_cfg->cpu_cc6_disable);
++ PP_DBG_LOG(" cpu_pstate_disable: %d\n",
++ display_cfg->cpu_pstate_disable);
++ PP_DBG_LOG(" nb_pstate_switch_disable: %d\n",
++ display_cfg->nb_pstate_switch_disable);
++ PP_DBG_LOG(" cpu_pstate_separation_time: %d\n\n",
++ display_cfg->cpu_pstate_separation_time);
++}
++
+ int cz_set_cpu_power_state(struct pp_hwmgr *hwmgr)
+ {
+ struct cz_hwmgr *hw_data = (struct cz_hwmgr *)(hwmgr->backend);
+ uint32_t data = 0;
++
+ if (hw_data->cc6_setting_changed == true) {
++
++ cz_hw_print_display_cfg(&hw_data->display_cfg);
++
+ data |= (hw_data->display_cfg.cpu_pstate_separation_time
+ & PWRMGT_SEPARATION_TIME_MASK)
+ << PWRMGT_SEPARATION_TIME_SHIFT;
+@@ -1537,6 +1563,9 @@ int cz_set_cpu_power_state(struct pp_hwmgr *hwmgr)
+ data|= (hw_data->display_cfg.cpu_pstate_disable ? 0x1 : 0x0)
+ << PWRMGT_DISABLE_CPU_PSTATES_SHIFT;
+
++ PP_DBG_LOG("SetDisplaySizePowerParams data: 0x%X\n",
++ data);
++
+ smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
+ PPSMC_MSG_SetDisplaySizePowerParams,
+ data);
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/pp_debug.h b/drivers/gpu/drm/amd/powerplay/inc/pp_debug.h
+index 3df3ded..d7d83b7 100644
+--- a/drivers/gpu/drm/amd/powerplay/inc/pp_debug.h
++++ b/drivers/gpu/drm/amd/powerplay/inc/pp_debug.h
+@@ -36,5 +36,12 @@
+ } \
+ } while (0)
+
+-#endif
++
++#define PP_DBG_LOG(fmt, ...) \
++ do { \
++ if(0)printk(KERN_INFO "[ pp_dbg ] " fmt, ##__VA_ARGS__); \
++ } while (0)
++
++
++#endif /* PP_DEBUG_H */
+
+--
+2.7.4
+