drm/nouveau/hwmon: Add config for all sensors and their settings
authorOscar Salvador <osalvador.vilardaga@gmail.com>
Thu, 18 May 2017 21:24:34 +0000 (23:24 +0200)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 16 Jun 2017 04:05:01 +0000 (14:05 +1000)
This is a preparation for the next patches. It just adds the sensors with
their possible configurable settings and then fills the struct hwmon_channel_info
with all this information.

Signed-off-by: Oscar Salvador <osalvador.vilardaga@gmail.com>
Reviewed-by: Martin Peres <martin.peres@free.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_hwmon.c

index 23b1670c1c2f59e9ba8fa96031e5d42537260ca4..24b40c5f0836d44d145268016ea0128f091d1e81 100644 (file)
@@ -692,6 +692,78 @@ static const struct attribute_group hwmon_power_attrgroup = {
 static const struct attribute_group hwmon_power_caps_attrgroup = {
        .attrs = hwmon_power_caps_attributes,
 };
+
+static const u32 nouveau_config_chip[] = {
+       HWMON_C_UPDATE_INTERVAL,
+       0
+};
+
+static const u32 nouveau_config_in[] = {
+       HWMON_I_INPUT | HWMON_I_MIN | HWMON_I_MAX | HWMON_I_LABEL,
+       0
+};
+
+static const u32 nouveau_config_temp[] = {
+       HWMON_T_INPUT | HWMON_T_MAX | HWMON_T_MAX_HYST |
+       HWMON_T_CRIT | HWMON_T_CRIT_HYST | HWMON_T_EMERGENCY |
+       HWMON_T_EMERGENCY_HYST,
+       0
+};
+
+static const u32 nouveau_config_fan[] = {
+       HWMON_F_INPUT,
+       0
+};
+
+static const u32 nouveau_config_pwm[] = {
+       HWMON_PWM_INPUT | HWMON_PWM_ENABLE,
+       0
+};
+
+static const u32 nouveau_config_power[] = {
+       HWMON_P_INPUT | HWMON_P_CAP_MAX | HWMON_P_CRIT,
+       0
+};
+
+static const struct hwmon_channel_info nouveau_chip = {
+       .type = hwmon_chip,
+       .config = nouveau_config_chip,
+};
+
+static const struct hwmon_channel_info nouveau_temp = {
+       .type = hwmon_temp,
+       .config = nouveau_config_temp,
+};
+
+static const struct hwmon_channel_info nouveau_fan = {
+       .type = hwmon_fan,
+       .config = nouveau_config_fan,
+};
+
+static const struct hwmon_channel_info nouveau_in = {
+       .type = hwmon_in,
+       .config = nouveau_config_in,
+};
+
+static const struct hwmon_channel_info nouveau_pwm = {
+       .type = hwmon_pwm,
+       .config = nouveau_config_pwm,
+};
+
+static const struct hwmon_channel_info nouveau_power = {
+       .type = hwmon_power,
+       .config = nouveau_config_power,
+};
+
+static const struct hwmon_channel_info *nouveau_info[] = {
+       &nouveau_chip,
+       &nouveau_temp,
+       &nouveau_fan,
+       &nouveau_in,
+       &nouveau_pwm,
+       &nouveau_power,
+       NULL
+};
 #endif
 
 int