Lines Matching +full:fan +full:- +full:hat
2 * Copyright 2010 Red Hat Inc.
30 #include <linux/hwmon-sysfs.h>
58 therm->attr_get(therm, NVKM_THERM_ATTR_THRS_FAN_BOOST) * 1000); in nouveau_hwmon_temp1_auto_point1_temp()
71 return -EINVAL; in nouveau_hwmon_set_temp1_auto_point1_temp()
73 therm->attr_set(therm, NVKM_THERM_ATTR_THRS_FAN_BOOST, in nouveau_hwmon_set_temp1_auto_point1_temp()
91 therm->attr_get(therm, NVKM_THERM_ATTR_THRS_FAN_BOOST_HYST) * 1000); in nouveau_hwmon_temp1_auto_point1_temp_hyst()
104 return -EINVAL; in nouveau_hwmon_set_temp1_auto_point1_temp_hyst()
106 therm->attr_set(therm, NVKM_THERM_ATTR_THRS_FAN_BOOST_HYST, in nouveau_hwmon_set_temp1_auto_point1_temp_hyst()
124 ret = therm->attr_get(therm, NVKM_THERM_ATTR_FAN_MAX_DUTY); in nouveau_hwmon_get_pwm1_max()
140 ret = therm->attr_get(therm, NVKM_THERM_ATTR_FAN_MIN_DUTY); in nouveau_hwmon_get_pwm1_min()
158 return -EINVAL; in nouveau_hwmon_set_pwm1_min()
160 ret = therm->attr_set(therm, NVKM_THERM_ATTR_FAN_MIN_DUTY, value); in nouveau_hwmon_set_pwm1_min()
181 return -EINVAL; in nouveau_hwmon_set_pwm1_max()
183 ret = therm->attr_set(therm, NVKM_THERM_ATTR_FAN_MAX_DUTY, value); in nouveau_hwmon_set_pwm1_max()
222 HWMON_CHANNEL_INFO(fan,
252 if (!iccsense || !iccsense->data_valid || list_empty(&iccsense->rails)) in nouveau_power_is_visible()
259 if (iccsense->power_w_max) in nouveau_power_is_visible()
263 if (iccsense->power_w_crit) in nouveau_power_is_visible()
277 if (!therm || !therm->attr_get || nvkm_therm_temp_get(therm) < 0) in nouveau_temp_is_visible()
301 if (!therm || !therm->attr_get || !therm->fan_get || in nouveau_pwm_is_visible()
302 therm->fan_get(therm) < 0) in nouveau_pwm_is_visible()
340 if (!therm || !therm->attr_get || nvkm_therm_fan_sense(therm) < 0) in nouveau_fan_is_visible()
359 return -EOPNOTSUPP; in nouveau_chip_read()
373 if (!therm || !therm->attr_get) in nouveau_temp_read()
374 return -EOPNOTSUPP; in nouveau_temp_read()
378 if (drm_dev->switch_power_state != DRM_SWITCH_POWER_ON) in nouveau_temp_read()
379 return -EINVAL; in nouveau_temp_read()
384 *val = therm->attr_get(therm, NVKM_THERM_ATTR_THRS_DOWN_CLK) in nouveau_temp_read()
388 *val = therm->attr_get(therm, NVKM_THERM_ATTR_THRS_DOWN_CLK_HYST) in nouveau_temp_read()
392 *val = therm->attr_get(therm, NVKM_THERM_ATTR_THRS_CRITICAL) in nouveau_temp_read()
396 *val = therm->attr_get(therm, NVKM_THERM_ATTR_THRS_CRITICAL_HYST) in nouveau_temp_read()
400 *val = therm->attr_get(therm, NVKM_THERM_ATTR_THRS_SHUTDOWN) in nouveau_temp_read()
404 *val = therm->attr_get(therm, NVKM_THERM_ATTR_THRS_SHUTDOWN_HYST) in nouveau_temp_read()
408 return -EOPNOTSUPP; in nouveau_temp_read()
422 return -EOPNOTSUPP; in nouveau_fan_read()
426 if (drm_dev->switch_power_state != DRM_SWITCH_POWER_ON) in nouveau_fan_read()
427 return -EINVAL; in nouveau_fan_read()
431 return -EOPNOTSUPP; in nouveau_fan_read()
446 return -EOPNOTSUPP; in nouveau_in_read()
450 if (drm_dev->switch_power_state != DRM_SWITCH_POWER_ON) in nouveau_in_read()
451 return -EINVAL; in nouveau_in_read()
456 *val = volt->min_uv > 0 ? (volt->min_uv / 1000) : -ENODEV; in nouveau_in_read()
459 *val = volt->max_uv > 0 ? (volt->max_uv / 1000) : -ENODEV; in nouveau_in_read()
462 return -EOPNOTSUPP; in nouveau_in_read()
475 if (!therm || !therm->attr_get || !therm->fan_get) in nouveau_pwm_read()
476 return -EOPNOTSUPP; in nouveau_pwm_read()
480 *val = therm->attr_get(therm, NVKM_THERM_ATTR_FAN_MODE); in nouveau_pwm_read()
483 if (drm_dev->switch_power_state != DRM_SWITCH_POWER_ON) in nouveau_pwm_read()
484 return -EINVAL; in nouveau_pwm_read()
485 *val = therm->fan_get(therm); in nouveau_pwm_read()
488 return -EOPNOTSUPP; in nouveau_pwm_read()
502 return -EOPNOTSUPP; in nouveau_power_read()
506 if (drm_dev->switch_power_state != DRM_SWITCH_POWER_ON) in nouveau_power_read()
507 return -EINVAL; in nouveau_power_read()
511 *val = iccsense->power_w_max; in nouveau_power_read()
514 *val = iccsense->power_w_crit; in nouveau_power_read()
517 return -EOPNOTSUPP; in nouveau_power_read()
530 if (!therm || !therm->attr_set) in nouveau_temp_write()
531 return -EOPNOTSUPP; in nouveau_temp_write()
535 return therm->attr_set(therm, NVKM_THERM_ATTR_THRS_DOWN_CLK, in nouveau_temp_write()
538 return therm->attr_set(therm, NVKM_THERM_ATTR_THRS_DOWN_CLK_HYST, in nouveau_temp_write()
541 return therm->attr_set(therm, NVKM_THERM_ATTR_THRS_CRITICAL, in nouveau_temp_write()
544 return therm->attr_set(therm, NVKM_THERM_ATTR_THRS_CRITICAL_HYST, in nouveau_temp_write()
547 return therm->attr_set(therm, NVKM_THERM_ATTR_THRS_SHUTDOWN, in nouveau_temp_write()
550 return therm->attr_set(therm, NVKM_THERM_ATTR_THRS_SHUTDOWN_HYST, in nouveau_temp_write()
553 return -EOPNOTSUPP; in nouveau_temp_write()
564 if (!therm || !therm->attr_set) in nouveau_pwm_write()
565 return -EOPNOTSUPP; in nouveau_pwm_write()
569 return therm->fan_set(therm, val); in nouveau_pwm_write()
571 return therm->attr_set(therm, NVKM_THERM_ATTR_FAN_MODE, val); in nouveau_pwm_write()
573 return -EOPNOTSUPP; in nouveau_pwm_write()
610 return -EOPNOTSUPP; in nouveau_read_string()
631 return -EOPNOTSUPP; in nouveau_read()
645 return -EOPNOTSUPP; in nouveau_write()
681 hwmon = drm->hwmon = kzalloc(sizeof(*hwmon), GFP_KERNEL); in nouveau_hwmon_init()
683 return -ENOMEM; in nouveau_hwmon_init()
684 hwmon->dev = dev; in nouveau_hwmon_init()
686 if (therm && therm->attr_get && therm->attr_set) { in nouveau_hwmon_init()
689 if (therm->fan_get && therm->fan_get(therm) >= 0) in nouveau_hwmon_init()
694 hwmon_dev = hwmon_device_register_with_info(dev->dev, "nouveau", dev, in nouveau_hwmon_init()
703 hwmon->hwmon = hwmon_dev; in nouveau_hwmon_init()
719 if (hwmon->hwmon) in nouveau_hwmon_fini()
720 hwmon_device_unregister(hwmon->hwmon); in nouveau_hwmon_fini()
722 nouveau_drm(dev)->hwmon = NULL; in nouveau_hwmon_fini()