diff mbox series

[SRU,J:linux-bluefield,v1,1/1] UBUNTU: SAUCE: ptm debugfs: add ddr thermal event nodes

Message ID 012ea38a23ba12501ece581acf900c19c0bd61d5.1691079366.git.jlanka@nvidia.com
State New
Headers show
Series UBUNTU: SAUCE: ptm debugfs: add ddr thermal event nodes | expand

Commit Message

Jitendra Lanka Aug. 3, 2023, 4:26 p.m. UTC
BugLink: https://bugs.launchpad.net/bugs/2029505

The following debugfs nodes are added:
* ddr_thermal_throttling_state - shows current ddr thermal
  throttling state.
* ddr_thermal_throttling_event_count - shows ddr thermal
  throttle event count.

Signed-off-by: Jitendra Lanka <jlanka@nvidia.com>
---
 drivers/platform/mellanox/mlxbf-ptm.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
diff mbox series

Patch

diff --git a/drivers/platform/mellanox/mlxbf-ptm.c b/drivers/platform/mellanox/mlxbf-ptm.c
index eb4460cb058b..59ac99695825 100644
--- a/drivers/platform/mellanox/mlxbf-ptm.c
+++ b/drivers/platform/mellanox/mlxbf-ptm.c
@@ -26,6 +26,8 @@ 
 #define MLNX_PTM_GET_POWER_ENVELOPE     0x8200010B
 #define MLNX_PTM_GET_ATX_PWR_STATE      0x8200010C
 #define MLNX_PTM_GET_CUR_PPROFILE       0x8200010D
+#define MLNX_PTM_GET_DDR_TTHROTTLE      0x8200010E
+#define MLNX_PTM_GET_DDR_TEMP_EVT_CTR   0x8200010F
 
 #define MLNX_POWER_ERROR		300
 
@@ -172,6 +174,23 @@  static int current_pprofile_show(void *data, u64 *val)
 DEFINE_SIMPLE_ATTRIBUTE(current_pprofile_fops,
 			current_pprofile_show, NULL, "%llu\n");
 
+static int ddr_thermal_throttling_state_show(void *data, u64 *val)
+{
+	*val = smc_call0(MLNX_PTM_GET_DDR_TTHROTTLE);
+
+	return 0;
+}
+DEFINE_SIMPLE_ATTRIBUTE(ddr_thermal_throttling_state_fops,
+			ddr_thermal_throttling_state_show, NULL, "%llu\n");
+
+static int ddr_thermal_evt_counter_show(void *data, u64 *val)
+{
+	*val = smc_call0(MLNX_PTM_GET_DDR_TEMP_EVT_CTR);
+
+	return 0;
+}
+DEFINE_SIMPLE_ATTRIBUTE(ddr_thermal_evt_counter_fops,
+			ddr_thermal_evt_counter_show, NULL, "%llu\n");
 
 static int __init mlxbf_ptm_init(void)
 {
@@ -212,6 +231,10 @@  static int __init mlxbf_ptm_init(void)
 			    NULL, &atx_status_fops);
 	debugfs_create_file("active_power_profile", 0444, status,
 			    NULL, &current_pprofile_fops);
+	debugfs_create_file("ddr_thermal_throttling_event_count", 0444, status,
+			    NULL, &ddr_thermal_evt_counter_fops);
+	debugfs_create_file("ddr_thermal_throttling_state", 0444, status,
+			    NULL, &ddr_thermal_throttling_state_fops);
 
 	return 0;
 }