* [PATCH v2 1/4] drm/amd/pm: Update pmfw headers for smu_v13_0_12
@ 2025-11-12 15:28 Asad Kamal
2025-11-12 15:28 ` [PATCH v2 2/4] drm/amd/pm: Add sysfs node for ubb power Asad Kamal
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Asad Kamal @ 2025-11-12 15:28 UTC (permalink / raw)
To: amd-gfx
Cc: lijo.lazar, hawking.zhang, le.ma, shiwu.zhang, alexander.deucher,
asad.kamal, KevinYang.Wang
Update pmfw headers for smu_v13_0_12 to include ubb power
Signed-off-by: Asad Kamal <asad.kamal@amd.com>
---
.../gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_12_pmfw.h | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_12_pmfw.h b/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_12_pmfw.h
index dd30d96e1ca2..acf7b2f43b0e 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_12_pmfw.h
+++ b/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v13_0_12_pmfw.h
@@ -189,6 +189,13 @@ typedef enum {
SVI_MAX_TEMP_ENTRIES, // 13
} SVI_TEMP_e;
+typedef enum{
+ SYSTEM_POWER_UBB_POWER,
+ SYSTEM_POWER_UBB_POWER_THRESHOLD,
+ SYSTEM_POWER_MAX_ENTRIES_WO_RESERVED,
+ SYSTEM_POWER_MAX_ENTRIES = 4
+} SYSTEM_POWER_e;
+
#define SMU_METRICS_TABLE_VERSION 0x15
#define SMU_SYSTEM_METRICS_TABLE_VERSION 0x1
@@ -310,6 +317,7 @@ typedef struct {
uint32_t NodePowerLimit;
uint32_t NodePower;
uint32_t GlobalPPTResidencyAcc;
+ uint16_t SystemPower[SYSTEM_POWER_MAX_ENTRIES]; // UBB Current Power and Power Threshold
} SystemMetricsTable_t;
#pragma pack(pop)
--
2.46.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v2 2/4] drm/amd/pm: Add sysfs node for ubb power 2025-11-12 15:28 [PATCH v2 1/4] drm/amd/pm: Update pmfw headers for smu_v13_0_12 Asad Kamal @ 2025-11-12 15:28 ` Asad Kamal 2025-11-13 6:30 ` Lazar, Lijo 2025-11-12 15:28 ` [PATCH v2 3/4] drm/amd/pm: Fetch ubb power for smu_v13_0_12 Asad Kamal 2025-11-12 15:28 ` [PATCH v2 4/4] drm/amd/pm: Enable system power caps " Asad Kamal 2 siblings, 1 reply; 6+ messages in thread From: Asad Kamal @ 2025-11-12 15:28 UTC (permalink / raw) To: amd-gfx Cc: lijo.lazar, hawking.zhang, le.ma, shiwu.zhang, alexander.deucher, asad.kamal, KevinYang.Wang Add sysfs node to expose ubb power limit for smu_v13_0_12 v2: Update sysfs node name to baseboard_power & baseboard_power_limit to make it consistent with other node names (Lijo) Signed-off-by: Asad Kamal <asad.kamal@amd.com> --- .../gpu/drm/amd/include/kgd_pp_interface.h | 2 + drivers/gpu/drm/amd/pm/amdgpu_pm.c | 65 ++++++++++++++++++- 2 files changed, 65 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/include/kgd_pp_interface.h b/drivers/gpu/drm/amd/include/kgd_pp_interface.h index 2366e68262e6..92477120c28d 100644 --- a/drivers/gpu/drm/amd/include/kgd_pp_interface.h +++ b/drivers/gpu/drm/amd/include/kgd_pp_interface.h @@ -166,6 +166,8 @@ enum amd_pp_sensors { AMDGPU_PP_SENSOR_NODEPOWER, AMDGPU_PP_SENSOR_GPPTRESIDENCY, AMDGPU_PP_SENSOR_MAXNODEPOWERLIMIT, + AMDGPU_PP_SENSOR_UBB_POWER, + AMDGPU_PP_SENSOR_UBB_POWER_LIMIT, }; enum amd_pp_task { diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/amdgpu_pm.c index d9e37fd6e186..1efa08771361 100644 --- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c +++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c @@ -2082,9 +2082,10 @@ static int pp_dpm_clk_default_attr_update(struct amdgpu_device *adev, struct amd * for user application to monitor various board reated attributes. * * The amdgpu driver provides a sysfs API for reporting board attributes. Presently, - * seven types of attributes are reported. Baseboard temperature and + * nine types of attributes are reported. Baseboard temperature and * gpu board temperature are reported as binary files. Npm status, current node power limit, - * max node power limit, node power and global ppt residency is reported as ASCII text file. + * max node power limit, node power, global ppt residency, baseboard_power, baseboard_power_limit + * is reported as ASCII text file. * * * .. code-block:: console * @@ -2101,6 +2102,10 @@ static int pp_dpm_clk_default_attr_update(struct amdgpu_device *adev, struct amd * hexdump /sys/bus/pci/devices/.../board/node_power * * hexdump /sys/bus/pci/devices/.../board/global_ppt_resid + * + * hexdump /sys/bus/pci/devices/.../board/baseboard_power + * + * hexdump /sys/bus/pci/devices/.../board/baseboard_power_limit */ /** @@ -2295,6 +2300,52 @@ static ssize_t amdgpu_show_max_node_power_limit(struct device *dev, return sysfs_emit(buf, "%u\n", max_nplimit); } +/** + * DOC: baseboard_power + * + * The amdgpu driver provides a sysfs API for retrieving current ubb power. + * The file baseboard_power is used for this. + */ +static ssize_t amdgpu_show_baseboard_power(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct drm_device *ddev = dev_get_drvdata(dev); + struct amdgpu_device *adev = drm_to_adev(ddev); + u32 ubbpower; + int r; + + /* get the node power */ + r = amdgpu_pm_get_sensor_generic(adev, AMDGPU_PP_SENSOR_UBB_POWER, + (void *)&ubbpower); + if (r) + return r; + + return sysfs_emit(buf, "%u\n", ubbpower); +} + +/** + * DOC: baseboard_power_limit + * + * The amdgpu driver provides a sysfs API for retrieving threshold ubb power. + * The file baseboard_power_limit is used for this. + */ +static ssize_t amdgpu_show_baseboard_power_limit(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct drm_device *ddev = dev_get_drvdata(dev); + struct amdgpu_device *adev = drm_to_adev(ddev); + u32 ubbpowerlimit; + int r; + + /* get the node power */ + r = amdgpu_pm_get_sensor_generic(adev, AMDGPU_PP_SENSOR_UBB_POWER_LIMIT, + (void *)&ubbpowerlimit); + if (r) + return r; + + return sysfs_emit(buf, "%u\n", ubbpowerlimit); +} + static DEVICE_ATTR(baseboard_temp, 0444, amdgpu_get_baseboard_temp_metrics, NULL); static DEVICE_ATTR(gpuboard_temp, 0444, amdgpu_get_gpuboard_temp_metrics, NULL); static DEVICE_ATTR(cur_node_power_limit, 0444, amdgpu_show_cur_node_power_limit, NULL); @@ -2302,6 +2353,8 @@ static DEVICE_ATTR(node_power, 0444, amdgpu_show_node_power, NULL); static DEVICE_ATTR(global_ppt_resid, 0444, amdgpu_show_global_ppt_resid, NULL); static DEVICE_ATTR(max_node_power_limit, 0444, amdgpu_show_max_node_power_limit, NULL); static DEVICE_ATTR(npm_status, 0444, amdgpu_show_npm_status, NULL); +static DEVICE_ATTR(baseboard_power, 0444, amdgpu_show_baseboard_power, NULL); +static DEVICE_ATTR(baseboard_power_limit, 0444, amdgpu_show_baseboard_power_limit, NULL); static struct attribute *board_attrs[] = { &dev_attr_baseboard_temp.attr, @@ -4748,6 +4801,14 @@ int amdgpu_pm_sysfs_init(struct amdgpu_device *adev) sysfs_add_file_to_group(&adev->dev->kobj, &dev_attr_npm_status.attr, amdgpu_board_attr_group.name); } + if (amdgpu_pm_get_sensor_generic(adev, AMDGPU_PP_SENSOR_UBB_POWER_LIMIT, + (void *)&tmp) != -EOPNOTSUPP) { + sysfs_add_file_to_group(&adev->dev->kobj, + &dev_attr_baseboard_power_limit.attr, + amdgpu_board_attr_group.name); + sysfs_add_file_to_group(&adev->dev->kobj, &dev_attr_baseboard_power.attr, + amdgpu_board_attr_group.name); + } } adev->pm.sysfs_initialized = true; -- 2.46.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/4] drm/amd/pm: Add sysfs node for ubb power 2025-11-12 15:28 ` [PATCH v2 2/4] drm/amd/pm: Add sysfs node for ubb power Asad Kamal @ 2025-11-13 6:30 ` Lazar, Lijo 0 siblings, 0 replies; 6+ messages in thread From: Lazar, Lijo @ 2025-11-13 6:30 UTC (permalink / raw) To: Asad Kamal, amd-gfx Cc: hawking.zhang, le.ma, shiwu.zhang, alexander.deucher, KevinYang.Wang On 11/12/2025 8:58 PM, Asad Kamal wrote: > Add sysfs node to expose ubb power limit for smu_v13_0_12 > > v2: Update sysfs node name to baseboard_power & baseboard_power_limit to > make it consistent with other node names (Lijo) > > Signed-off-by: Asad Kamal <asad.kamal@amd.com> > --- > .../gpu/drm/amd/include/kgd_pp_interface.h | 2 + > drivers/gpu/drm/amd/pm/amdgpu_pm.c | 65 ++++++++++++++++++- > 2 files changed, 65 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/include/kgd_pp_interface.h b/drivers/gpu/drm/amd/include/kgd_pp_interface.h > index 2366e68262e6..92477120c28d 100644 > --- a/drivers/gpu/drm/amd/include/kgd_pp_interface.h > +++ b/drivers/gpu/drm/amd/include/kgd_pp_interface.h > @@ -166,6 +166,8 @@ enum amd_pp_sensors { > AMDGPU_PP_SENSOR_NODEPOWER, > AMDGPU_PP_SENSOR_GPPTRESIDENCY, > AMDGPU_PP_SENSOR_MAXNODEPOWERLIMIT, > + AMDGPU_PP_SENSOR_UBB_POWER, > + AMDGPU_PP_SENSOR_UBB_POWER_LIMIT, > }; > > enum amd_pp_task { > diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/amdgpu_pm.c > index d9e37fd6e186..1efa08771361 100644 > --- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c > +++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c > @@ -2082,9 +2082,10 @@ static int pp_dpm_clk_default_attr_update(struct amdgpu_device *adev, struct amd > * for user application to monitor various board reated attributes. > * > * The amdgpu driver provides a sysfs API for reporting board attributes. Presently, > - * seven types of attributes are reported. Baseboard temperature and > + * nine types of attributes are reported. Baseboard temperature and > * gpu board temperature are reported as binary files. Npm status, current node power limit, > - * max node power limit, node power and global ppt residency is reported as ASCII text file. > + * max node power limit, node power, global ppt residency, baseboard_power, baseboard_power_limit > + * is reported as ASCII text file. > * > * * .. code-block:: console > * > @@ -2101,6 +2102,10 @@ static int pp_dpm_clk_default_attr_update(struct amdgpu_device *adev, struct amd > * hexdump /sys/bus/pci/devices/.../board/node_power > * > * hexdump /sys/bus/pci/devices/.../board/global_ppt_resid > + * > + * hexdump /sys/bus/pci/devices/.../board/baseboard_power > + * > + * hexdump /sys/bus/pci/devices/.../board/baseboard_power_limit > */ > > /** > @@ -2295,6 +2300,52 @@ static ssize_t amdgpu_show_max_node_power_limit(struct device *dev, > return sysfs_emit(buf, "%u\n", max_nplimit); > } > > +/** > + * DOC: baseboard_power > + * > + * The amdgpu driver provides a sysfs API for retrieving current ubb power. > + * The file baseboard_power is used for this. > + */ Please also update the unit for both (W/kW/mW etc.). Thanks, Lijo > +static ssize_t amdgpu_show_baseboard_power(struct device *dev, > + struct device_attribute *attr, char *buf) > +{ > + struct drm_device *ddev = dev_get_drvdata(dev); > + struct amdgpu_device *adev = drm_to_adev(ddev); > + u32 ubbpower; > + int r; > + > + /* get the node power */ > + r = amdgpu_pm_get_sensor_generic(adev, AMDGPU_PP_SENSOR_UBB_POWER, > + (void *)&ubbpower); > + if (r) > + return r; > + > + return sysfs_emit(buf, "%u\n", ubbpower); > +} > + > +/** > + * DOC: baseboard_power_limit > + * > + * The amdgpu driver provides a sysfs API for retrieving threshold ubb power. > + * The file baseboard_power_limit is used for this. > + */ > +static ssize_t amdgpu_show_baseboard_power_limit(struct device *dev, > + struct device_attribute *attr, char *buf) > +{ > + struct drm_device *ddev = dev_get_drvdata(dev); > + struct amdgpu_device *adev = drm_to_adev(ddev); > + u32 ubbpowerlimit; > + int r; > + > + /* get the node power */ > + r = amdgpu_pm_get_sensor_generic(adev, AMDGPU_PP_SENSOR_UBB_POWER_LIMIT, > + (void *)&ubbpowerlimit); > + if (r) > + return r; > + > + return sysfs_emit(buf, "%u\n", ubbpowerlimit); > +} > + > static DEVICE_ATTR(baseboard_temp, 0444, amdgpu_get_baseboard_temp_metrics, NULL); > static DEVICE_ATTR(gpuboard_temp, 0444, amdgpu_get_gpuboard_temp_metrics, NULL); > static DEVICE_ATTR(cur_node_power_limit, 0444, amdgpu_show_cur_node_power_limit, NULL); > @@ -2302,6 +2353,8 @@ static DEVICE_ATTR(node_power, 0444, amdgpu_show_node_power, NULL); > static DEVICE_ATTR(global_ppt_resid, 0444, amdgpu_show_global_ppt_resid, NULL); > static DEVICE_ATTR(max_node_power_limit, 0444, amdgpu_show_max_node_power_limit, NULL); > static DEVICE_ATTR(npm_status, 0444, amdgpu_show_npm_status, NULL); > +static DEVICE_ATTR(baseboard_power, 0444, amdgpu_show_baseboard_power, NULL); > +static DEVICE_ATTR(baseboard_power_limit, 0444, amdgpu_show_baseboard_power_limit, NULL); > > static struct attribute *board_attrs[] = { > &dev_attr_baseboard_temp.attr, > @@ -4748,6 +4801,14 @@ int amdgpu_pm_sysfs_init(struct amdgpu_device *adev) > sysfs_add_file_to_group(&adev->dev->kobj, &dev_attr_npm_status.attr, > amdgpu_board_attr_group.name); > } > + if (amdgpu_pm_get_sensor_generic(adev, AMDGPU_PP_SENSOR_UBB_POWER_LIMIT, > + (void *)&tmp) != -EOPNOTSUPP) { > + sysfs_add_file_to_group(&adev->dev->kobj, > + &dev_attr_baseboard_power_limit.attr, > + amdgpu_board_attr_group.name); > + sysfs_add_file_to_group(&adev->dev->kobj, &dev_attr_baseboard_power.attr, > + amdgpu_board_attr_group.name); > + } > } > > adev->pm.sysfs_initialized = true; ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 3/4] drm/amd/pm: Fetch ubb power for smu_v13_0_12 2025-11-12 15:28 [PATCH v2 1/4] drm/amd/pm: Update pmfw headers for smu_v13_0_12 Asad Kamal 2025-11-12 15:28 ` [PATCH v2 2/4] drm/amd/pm: Add sysfs node for ubb power Asad Kamal @ 2025-11-12 15:28 ` Asad Kamal 2025-11-12 15:28 ` [PATCH v2 4/4] drm/amd/pm: Enable system power caps " Asad Kamal 2 siblings, 0 replies; 6+ messages in thread From: Asad Kamal @ 2025-11-12 15:28 UTC (permalink / raw) To: amd-gfx Cc: lijo.lazar, hawking.zhang, le.ma, shiwu.zhang, alexander.deucher, asad.kamal, KevinYang.Wang Feth ubb power from system metrics table for smu_v13_0_12 Signed-off-by: Asad Kamal <asad.kamal@amd.com> --- .../drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c | 34 +++++++++++++++++++ .../drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c | 7 ++++ .../drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.h | 4 +++ 3 files changed, 45 insertions(+) diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c index 9e635f733fbf..07bee1f32f54 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c @@ -601,6 +601,40 @@ static bool smu_v13_0_12_is_temp_metrics_supported(struct smu_context *smu, return false; } +int smu_v13_0_12_get_system_power(struct smu_context *smu, + enum amd_pp_sensors sensor, + uint32_t *value) +{ + struct smu_table_context *smu_table = &smu->smu_table; + struct smu_table *tables = smu_table->tables; + SystemMetricsTable_t *metrics; + struct smu_table *sys_table; + int ret; + + if (!smu_v13_0_6_cap_supported(smu, SMU_CAP(SYSTEM_POWER_METRICS))) + return -EOPNOTSUPP; + + ret = smu_v13_0_12_get_system_metrics_table(smu); + if (ret) + return ret; + + sys_table = &tables[SMU_TABLE_PMFW_SYSTEM_METRICS]; + metrics = (SystemMetricsTable_t *)sys_table->cache.buffer; + + switch (sensor) { + case AMDGPU_PP_SENSOR_UBB_POWER: + *value = metrics->SystemPower[SYSTEM_POWER_UBB_POWER]; + break; + case AMDGPU_PP_SENSOR_UBB_POWER_LIMIT: + *value = metrics->SystemPower[SYSTEM_POWER_UBB_POWER_THRESHOLD]; + break; + default: + return -EINVAL; + } + + return ret; +} + int smu_v13_0_12_get_npm_data(struct smu_context *smu, enum amd_pp_sensors sensor, uint32_t *value) diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c index 44e1cd821eec..2fefd258bc0e 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c @@ -1860,6 +1860,13 @@ static int smu_v13_0_6_read_sensor(struct smu_context *smu, return ret; *size = 4; break; + case AMDGPU_PP_SENSOR_UBB_POWER: + case AMDGPU_PP_SENSOR_UBB_POWER_LIMIT: + ret = smu_v13_0_12_get_system_power(smu, sensor, (uint32_t *)data); + if (ret) + return ret; + *size = 4; + break; case AMDGPU_PP_SENSOR_GPU_AVG_POWER: default: ret = -EOPNOTSUPP; diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.h b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.h index 6cbdd7c5ded9..0588a5aa952d 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.h +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.h @@ -77,6 +77,7 @@ enum smu_v13_0_6_caps { SMU_CAP(NPM_METRICS), SMU_CAP(RAS_EEPROM), SMU_CAP(FAST_PPT), + SMU_CAP(SYSTEM_POWER_METRICS), SMU_CAP(ALL), }; @@ -107,6 +108,9 @@ void smu_v13_0_12_tables_fini(struct smu_context *smu); int smu_v13_0_12_get_npm_data(struct smu_context *smu, enum amd_pp_sensors sensor, uint32_t *value); +int smu_v13_0_12_get_system_power(struct smu_context *smu, + enum amd_pp_sensors sensor, + uint32_t *value); extern const struct cmn2asic_mapping smu_v13_0_12_feature_mask_map[]; extern const struct cmn2asic_msg_mapping smu_v13_0_12_message_map[]; extern const struct smu_temp_funcs smu_v13_0_12_temp_funcs; -- 2.46.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 4/4] drm/amd/pm: Enable system power caps for smu_v13_0_12 2025-11-12 15:28 [PATCH v2 1/4] drm/amd/pm: Update pmfw headers for smu_v13_0_12 Asad Kamal 2025-11-12 15:28 ` [PATCH v2 2/4] drm/amd/pm: Add sysfs node for ubb power Asad Kamal 2025-11-12 15:28 ` [PATCH v2 3/4] drm/amd/pm: Fetch ubb power for smu_v13_0_12 Asad Kamal @ 2025-11-12 15:28 ` Asad Kamal 2025-11-13 6:32 ` Lazar, Lijo 2 siblings, 1 reply; 6+ messages in thread From: Asad Kamal @ 2025-11-12 15:28 UTC (permalink / raw) To: amd-gfx Cc: lijo.lazar, hawking.zhang, le.ma, shiwu.zhang, alexander.deucher, asad.kamal, KevinYang.Wang Enable system power caps to fetch system power and threshold for smu_v13_0_12 Signed-off-by: Asad Kamal <asad.kamal@amd.com> --- drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c index 2fefd258bc0e..a3ceecbe5d68 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c @@ -356,8 +356,11 @@ static void smu_v13_0_12_init_caps(struct smu_context *smu) if (fw_ver > 0x04560900) smu_v13_0_6_cap_set(smu, SMU_CAP(VCN_RESET)); - if (fw_ver >= 0x04560D00) + if (fw_ver >= 0x04560D00) { smu_v13_0_6_cap_set(smu, SMU_CAP(FAST_PPT)); + if (smu->adev->gmc.xgmi.physical_node_id == 0) + smu_v13_0_6_cap_set(smu, SMU_CAP(SYSTEM_POWER_METRICS)); + } if (fw_ver >= 0x04560700) { if (fw_ver >= 0x04560900) { -- 2.46.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 4/4] drm/amd/pm: Enable system power caps for smu_v13_0_12 2025-11-12 15:28 ` [PATCH v2 4/4] drm/amd/pm: Enable system power caps " Asad Kamal @ 2025-11-13 6:32 ` Lazar, Lijo 0 siblings, 0 replies; 6+ messages in thread From: Lazar, Lijo @ 2025-11-13 6:32 UTC (permalink / raw) To: Asad Kamal, amd-gfx Cc: hawking.zhang, le.ma, shiwu.zhang, alexander.deucher, KevinYang.Wang On 11/12/2025 8:58 PM, Asad Kamal wrote: > Enable system power caps to fetch system power and threshold for > smu_v13_0_12 > > Signed-off-by: Asad Kamal <asad.kamal@amd.com> Please update the unit in documentation before submitting. With that, series is - Reviewed-by: Lijo Lazar <lijo.lazar@amd.com> Thanks, Lijo > --- > drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c > index 2fefd258bc0e..a3ceecbe5d68 100644 > --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c > +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c > @@ -356,8 +356,11 @@ static void smu_v13_0_12_init_caps(struct smu_context *smu) > if (fw_ver > 0x04560900) > smu_v13_0_6_cap_set(smu, SMU_CAP(VCN_RESET)); > > - if (fw_ver >= 0x04560D00) > + if (fw_ver >= 0x04560D00) { > smu_v13_0_6_cap_set(smu, SMU_CAP(FAST_PPT)); > + if (smu->adev->gmc.xgmi.physical_node_id == 0) > + smu_v13_0_6_cap_set(smu, SMU_CAP(SYSTEM_POWER_METRICS)); > + } > > if (fw_ver >= 0x04560700) { > if (fw_ver >= 0x04560900) { ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-11-13 6:32 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-11-12 15:28 [PATCH v2 1/4] drm/amd/pm: Update pmfw headers for smu_v13_0_12 Asad Kamal 2025-11-12 15:28 ` [PATCH v2 2/4] drm/amd/pm: Add sysfs node for ubb power Asad Kamal 2025-11-13 6:30 ` Lazar, Lijo 2025-11-12 15:28 ` [PATCH v2 3/4] drm/amd/pm: Fetch ubb power for smu_v13_0_12 Asad Kamal 2025-11-12 15:28 ` [PATCH v2 4/4] drm/amd/pm: Enable system power caps " Asad Kamal 2025-11-13 6:32 ` Lazar, Lijo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox