habanalabs: provide historical maximum of various sensors
authorChristine Gharzuzi <cgharzuzi@habana.ai>
Tue, 28 Jan 2020 13:19:38 +0000 (15:19 +0200)
committerOded Gabbay <oded.gabbay@gmail.com>
Tue, 24 Mar 2020 08:54:16 +0000 (10:54 +0200)
Add support for hwmon_in_highest, hwmon_temp_highest and hwmon_curr_highest
attributes. These attributes retrieve the historical maximum voltage,
temperature and current that were sampled, respectively.

Signed-off-by: Christine Gharzuzi <cgharzuzi@habana.ai>
Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
drivers/misc/habanalabs/hwmon.c
drivers/misc/habanalabs/include/armcp_if.h

index 3539190..a21a26e 100644 (file)
@@ -127,6 +127,7 @@ static int hl_read(struct device *dev, enum hwmon_sensor_types type,
                case hwmon_temp_max_hyst:
                case hwmon_temp_crit_hyst:
                case hwmon_temp_offset:
+               case hwmon_temp_highest:
                        break;
                default:
                        return -EINVAL;
@@ -139,6 +140,7 @@ static int hl_read(struct device *dev, enum hwmon_sensor_types type,
                case hwmon_in_input:
                case hwmon_in_min:
                case hwmon_in_max:
+               case hwmon_in_highest:
                        break;
                default:
                        return -EINVAL;
@@ -151,6 +153,7 @@ static int hl_read(struct device *dev, enum hwmon_sensor_types type,
                case hwmon_curr_input:
                case hwmon_curr_min:
                case hwmon_curr_max:
+               case hwmon_curr_highest:
                        break;
                default:
                        return -EINVAL;
@@ -230,6 +233,7 @@ static umode_t hl_is_visible(const void *data, enum hwmon_sensor_types type,
                case hwmon_temp_max_hyst:
                case hwmon_temp_crit:
                case hwmon_temp_crit_hyst:
+               case hwmon_temp_highest:
                        return 0444;
                case hwmon_temp_offset:
                        return 0644;
@@ -240,6 +244,7 @@ static umode_t hl_is_visible(const void *data, enum hwmon_sensor_types type,
                case hwmon_in_input:
                case hwmon_in_min:
                case hwmon_in_max:
+               case hwmon_in_highest:
                        return 0444;
                }
                break;
@@ -248,6 +253,7 @@ static umode_t hl_is_visible(const void *data, enum hwmon_sensor_types type,
                case hwmon_curr_input:
                case hwmon_curr_min:
                case hwmon_curr_max:
+               case hwmon_curr_highest:
                        return 0444;
                }
                break;
index 014549e..bdd0a4c 100644 (file)
@@ -287,19 +287,22 @@ enum armcp_temp_type {
        armcp_temp_max_hyst,
        armcp_temp_crit,
        armcp_temp_crit_hyst,
-       armcp_temp_offset = 19
+       armcp_temp_offset = 19,
+       armcp_temp_highest = 22
 };
 
 enum armcp_in_attributes {
        armcp_in_input,
        armcp_in_min,
-       armcp_in_max
+       armcp_in_max,
+       armcp_in_highest = 7
 };
 
 enum armcp_curr_attributes {
        armcp_curr_input,
        armcp_curr_min,
-       armcp_curr_max
+       armcp_curr_max,
+       armcp_curr_highest = 7
 };
 
 enum armcp_fan_attributes {