Kernel driver nouveau
===================

Supported chips:
* NV43+

Authors: Martin Peres (mupuf) <martin.peres@free.fr>

Description
---------

This driver allows to read the GPU core temperature, drive the GPU fan and
set temperature alarms.

Currently, due to the absence of in-kernel API to access HWMON drivers, Nouveau
cannot access any of the i2c external monitoring chips it may find. If you
have one of those, temperature and/or fan management through Nouveau's HWMON
interface is likely not to work. This document may then not cover your situation
entirely.

Temperature management
--------------------

Temperature is exposed under as a read-only HWMON attribute temp1_input.

In order to protect the GPU from overheating, Nouveau supports 4 configurable
temperature thresholds:

 * Fan_boost: Fan speed is set to 100% when reaching this temperature;
 * Downclock: The GPU will be downclocked to reduce its power dissipation;
 * Critical: The GPU is put on hold to further lower power dissipation;
 * Shutdown: Shut the computer down to protect your GPU.

WARNING: Some of these thresholds may not be used by Nouveau depending
on your chipset.

The default value for these thresholds comes from the GPU's vbios. These
thresholds can be configured thanks to the following HWMON attributes:

 * Fan_boost: temp1_auto_point1_temp and temp1_auto_point1_temp_hyst;
 * Downclock: temp1_max and temp1_max_hyst;
 * Critical: temp1_crit and temp1_crit_hyst;
 * Shutdown: temp1_emergency and temp1_emergency_hyst.

NOTE: Remember that the values are stored as milli degrees Celsius. Don't forget
to multiply!

Fan management
------------

Not all cards have a drivable fan. If you do, then the following HWMON
attributes should be available:

 * pwm1_enable: Current fan management mode (NONE, MANUAL or AUTO);
 * pwm1: Current PWM value (power percentage);
 * pwm1_min: The minimum PWM speed allowed;
 * pwm1_max: The maximum PWM speed allowed (bypassed when hitting Fan_boost);

You may also have the following attribute:

 * fan1_input: Speed in RPM of your fan.

Your fan can be driven in different modes:

 * 0: The fan is left untouched;
 * 1: The fan can be driven in manual (use pwm1 to change the speed);
 * 2; The fan is driven automatically depending on the temperature.

NOTE: Be sure to use the manual mode if you want to drive the fan speed manually

NOTE2: When operating in manual mode outside the vbios-defined
[PWM_min, PWM_max] range, the reported fan speed (RPM) may not be accurate
depending on your hardware.

Bug reports
---------

Thermal management on Nouveau is new and may not work on all cards. If you have
inquiries, please ping mupuf on IRC (#nouveau, freenode).

Bug reports should be filled on Freedesktop's bug tracker. Please follow
http://nouveau.freedesktop.org/wiki/Bugs
