18c2ecf20Sopenharmony_ci=====================
28c2ecf20Sopenharmony_ciKernel driver nouveau
38c2ecf20Sopenharmony_ci=====================
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ciSupported chips:
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci* NV43+
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciAuthors: Martin Peres (mupuf) <martin.peres@free.fr>
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ciDescription
128c2ecf20Sopenharmony_ci-----------
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciThis driver allows to read the GPU core temperature, drive the GPU fan and
158c2ecf20Sopenharmony_ciset temperature alarms.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciCurrently, due to the absence of in-kernel API to access HWMON drivers, Nouveau
188c2ecf20Sopenharmony_cicannot access any of the i2c external monitoring chips it may find. If you
198c2ecf20Sopenharmony_cihave one of those, temperature and/or fan management through Nouveau's HWMON
208c2ecf20Sopenharmony_ciinterface is likely not to work. This document may then not cover your situation
218c2ecf20Sopenharmony_cientirely.
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ciTemperature management
248c2ecf20Sopenharmony_ci----------------------
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ciTemperature is exposed under as a read-only HWMON attribute temp1_input.
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ciIn order to protect the GPU from overheating, Nouveau supports 4 configurable
298c2ecf20Sopenharmony_citemperature thresholds:
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci * Fan_boost:
328c2ecf20Sopenharmony_ci	Fan speed is set to 100% when reaching this temperature;
338c2ecf20Sopenharmony_ci * Downclock:
348c2ecf20Sopenharmony_ci	The GPU will be downclocked to reduce its power dissipation;
358c2ecf20Sopenharmony_ci * Critical:
368c2ecf20Sopenharmony_ci	The GPU is put on hold to further lower power dissipation;
378c2ecf20Sopenharmony_ci * Shutdown:
388c2ecf20Sopenharmony_ci	Shut the computer down to protect your GPU.
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciWARNING:
418c2ecf20Sopenharmony_ci	Some of these thresholds may not be used by Nouveau depending
428c2ecf20Sopenharmony_ci	on your chipset.
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ciThe default value for these thresholds comes from the GPU's vbios. These
458c2ecf20Sopenharmony_cithresholds can be configured thanks to the following HWMON attributes:
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci * Fan_boost: temp1_auto_point1_temp and temp1_auto_point1_temp_hyst;
488c2ecf20Sopenharmony_ci * Downclock: temp1_max and temp1_max_hyst;
498c2ecf20Sopenharmony_ci * Critical: temp1_crit and temp1_crit_hyst;
508c2ecf20Sopenharmony_ci * Shutdown: temp1_emergency and temp1_emergency_hyst.
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ciNOTE: Remember that the values are stored as milli degrees Celsius. Don't forget
538c2ecf20Sopenharmony_cito multiply!
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ciFan management
568c2ecf20Sopenharmony_ci--------------
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ciNot all cards have a drivable fan. If you do, then the following HWMON
598c2ecf20Sopenharmony_ciattributes should be available:
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci * pwm1_enable:
628c2ecf20Sopenharmony_ci	Current fan management mode (NONE, MANUAL or AUTO);
638c2ecf20Sopenharmony_ci * pwm1:
648c2ecf20Sopenharmony_ci	Current PWM value (power percentage);
658c2ecf20Sopenharmony_ci * pwm1_min:
668c2ecf20Sopenharmony_ci	The minimum PWM speed allowed;
678c2ecf20Sopenharmony_ci * pwm1_max:
688c2ecf20Sopenharmony_ci	The maximum PWM speed allowed (bypassed when hitting Fan_boost);
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ciYou may also have the following attribute:
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci * fan1_input:
738c2ecf20Sopenharmony_ci	Speed in RPM of your fan.
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ciYour fan can be driven in different modes:
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci * 0: The fan is left untouched;
788c2ecf20Sopenharmony_ci * 1: The fan can be driven in manual (use pwm1 to change the speed);
798c2ecf20Sopenharmony_ci * 2; The fan is driven automatically depending on the temperature.
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ciNOTE:
828c2ecf20Sopenharmony_ci  Be sure to use the manual mode if you want to drive the fan speed manually
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ciNOTE2:
858c2ecf20Sopenharmony_ci  When operating in manual mode outside the vbios-defined
868c2ecf20Sopenharmony_ci  [PWM_min, PWM_max] range, the reported fan speed (RPM) may not be accurate
878c2ecf20Sopenharmony_ci  depending on your hardware.
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ciBug reports
908c2ecf20Sopenharmony_ci-----------
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ciThermal management on Nouveau is new and may not work on all cards. If you have
938c2ecf20Sopenharmony_ciinquiries, please ping mupuf on IRC (#nouveau, freenode).
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ciBug reports should be filled on Freedesktop's bug tracker. Please follow
968c2ecf20Sopenharmony_cihttps://nouveau.freedesktop.org/wiki/Bugs
97