RE: [PATCH 2/2] drm/amd/pm: change the workload type for some cards

2021-08-13 Thread Zhang, Hawking
[AMD Official Use Only]

Series is

Reviewed-by: Hawking Zhang 

Regards,
Hawking
-Original Message-
From: Kenneth Feng  
Sent: Friday, August 13, 2021 16:48
To: amd-gfx@lists.freedesktop.org
Cc: Zhang, Hawking ; Feng, Kenneth 
Subject: [PATCH 2/2] drm/amd/pm: change the workload type for some cards

change the workload type for some cards as it is needed.

Signed-off-by: Kenneth Feng 
---
 .../gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c | 15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c 
b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c
index a9bd8265b508..f3cd397cb56b 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c
@@ -5127,6 +5127,13 @@ static int vega10_get_power_profile_mode(struct pp_hwmgr 
*hwmgr, char *buf)
return size;
 }
 
+static bool vega10_get_power_profile_mode_quirks(struct pp_hwmgr 
+*hwmgr) {
+   struct amdgpu_device *adev = hwmgr->adev;
+
+   return (adev->pdev->device == 0x6860); }
+
 static int vega10_set_power_profile_mode(struct pp_hwmgr *hwmgr, long *input, 
uint32_t size)  {
struct vega10_hwmgr *data = hwmgr->backend; @@ -5163,9 +5170,15 @@ 
static int vega10_set_power_profile_mode(struct pp_hwmgr *hwmgr, long *input, ui
}
 
 out:
-   smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_SetWorkloadMask,
+   if (vega10_get_power_profile_mode_quirks(hwmgr))
+   smum_send_msg_to_smc_with_parameter(hwmgr, 
PPSMC_MSG_SetWorkloadMask,
1 << power_profile_mode,
NULL);
+   else
+   smum_send_msg_to_smc_with_parameter(hwmgr, 
PPSMC_MSG_SetWorkloadMask,
+   (!power_profile_mode) ? 0 : 1 
<< (power_profile_mode - 1),
+   NULL);
+
hwmgr->power_profile_mode = power_profile_mode;
 
return 0;
--
2.17.1


[PATCH 2/2] drm/amd/pm: change the workload type for some cards

2021-08-13 Thread Kenneth Feng
change the workload type for some cards as it is needed.

Signed-off-by: Kenneth Feng 
---
 .../gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c | 15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c 
b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c
index a9bd8265b508..f3cd397cb56b 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c
@@ -5127,6 +5127,13 @@ static int vega10_get_power_profile_mode(struct pp_hwmgr 
*hwmgr, char *buf)
return size;
 }
 
+static bool vega10_get_power_profile_mode_quirks(struct pp_hwmgr *hwmgr)
+{
+   struct amdgpu_device *adev = hwmgr->adev;
+
+   return (adev->pdev->device == 0x6860);
+}
+
 static int vega10_set_power_profile_mode(struct pp_hwmgr *hwmgr, long *input, 
uint32_t size)
 {
struct vega10_hwmgr *data = hwmgr->backend;
@@ -5163,9 +5170,15 @@ static int vega10_set_power_profile_mode(struct pp_hwmgr 
*hwmgr, long *input, ui
}
 
 out:
-   smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_SetWorkloadMask,
+   if (vega10_get_power_profile_mode_quirks(hwmgr))
+   smum_send_msg_to_smc_with_parameter(hwmgr, 
PPSMC_MSG_SetWorkloadMask,
1 << power_profile_mode,
NULL);
+   else
+   smum_send_msg_to_smc_with_parameter(hwmgr, 
PPSMC_MSG_SetWorkloadMask,
+   (!power_profile_mode) ? 0 : 1 
<< (power_profile_mode - 1),
+   NULL);
+
hwmgr->power_profile_mode = power_profile_mode;
 
return 0;
-- 
2.17.1