[PATCH 2/2] drm/amd/pp: Add stable Pstate clk display support in debugfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ok. Thanks. I will query twice.one for pstate sclk and one for mclk.

Best Regards
Rex
________________________________
From: Deucher, Alexander
Sent: Friday, January 5, 2018 11:44:00 PM
To: Zhu, Rex; amd-gfx at lists.freedesktop.org
Subject: Re: [PATCH 2/2] drm/amd/pp: Add stable Pstate clk display support in debugfs



________________________________
From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> on behalf of Rex Zhu <Rex.Zhu at amd.com>
Sent: Friday, January 5, 2018 6:38 AM
To: amd-gfx at lists.freedesktop.org
Cc: Zhu, Rex
Subject: [PATCH 2/2] drm/amd/pp: Add stable Pstate clk display support in debugfs

The additional output are: PSTATE_SCLK and PSTATE_MCLK value
in MHz as:

300 MHz (PSTATE_SCLK)
300 MHz (PSTATE_MCLK)

Change-Id: I08645d518635f81bc566d242712b6906ee5413fb
Signed-off-by: Rex Zhu <Rex.Zhu at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c         | 2 ++
 drivers/gpu/drm/amd/include/kgd_pp_interface.h | 1 +
 drivers/gpu/drm/amd/powerplay/amd_powerplay.c  | 8 ++++++++
 3 files changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
index e5ee7cf..4bd48b1 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
@@ -1512,6 +1512,8 @@ static int amdgpu_debugfs_pm_info_pp(struct seq_file *m, struct amdgpu_device *a
                 seq_printf(m, "\t%u MHz (MCLK)\n", value/100);
         if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GFX_SCLK, (void *)&value, &size))
                 seq_printf(m, "\t%u MHz (SCLK)\n", value/100);
+       if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_STABLE_PSTATE_CLK, (void *)&value, &size))
+               seq_printf(m, "\t%u MHz (PSTATE_SCLK)\n\t%u MHz (PSTATE_MCLK)\n", value & 0xffff, (value>>16) & 0xffff);
         if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VDDGFX, (void *)&value, &size))
                 seq_printf(m, "\t%u mV (VDDGFX)\n", value);
         if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VDDNB, (void *)&value, &size))
diff --git a/drivers/gpu/drm/amd/include/kgd_pp_interface.h b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
index 0f89d2a8..1be526f 100644
--- a/drivers/gpu/drm/amd/include/kgd_pp_interface.h
+++ b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
@@ -122,6 +122,7 @@ enum amd_pp_sensors {
         AMDGPU_PP_SENSOR_VCE_POWER,
         AMDGPU_PP_SENSOR_UVD_POWER,
         AMDGPU_PP_SENSOR_GPU_POWER,
+       AMDGPU_PP_SENSOR_STABLE_PSTATE_CLK,
 };

 enum amd_pp_task {
diff --git a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
index 8859b67..a0c5642 100644
--- a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
+++ b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
@@ -998,6 +998,14 @@ static int pp_dpm_read_sensor(void *handle, int idx,

         hwmgr = pp_handle->hwmgr;

+       if ((idx == AMDGPU_PP_SENSOR_STABLE_PSTATE_CLK) && (value != NULL)) {
+               mutex_lock(&pp_handle->pp_lock);
+               *((uint32_t *)value) = (hwmgr->pstate_sclk / 100 & 0xffff) |
+                               ((hwmgr->pstate_mclk / 100 & 0xffff) << 16);

This seems kinda hacky.  Either add two queries or make the query take two values.

Alex

+               mutex_unlock(&pp_handle->pp_lock);
+               return 0;
+       }
+
         if (hwmgr->hwmgr_func->read_sensor == NULL) {
                 pr_info("%s was not implemented.\n", __func__);
                 return 0;
--
1.9.1

_______________________________________________
amd-gfx mailing list
amd-gfx at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20180105/31b43894/attachment.html>


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux