diff options
author | Martin Peres <martin.peres@free.fr> | 2014-08-17 17:33:06 +0200 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-09-15 22:22:13 +1000 |
commit | 288c17bd9e959a32cfd8c3aec96410579cb9dccc (patch) | |
tree | 6c8045dcc39042f73834f320afef85b06bfd038e /drivers/gpu/drm/nouveau/core/include/subdev | |
parent | e0ae67982305f425b751291bbac3ea5b58d4b0a7 (diff) | |
download | op-kernel-dev-288c17bd9e959a32cfd8c3aec96410579cb9dccc.zip op-kernel-dev-288c17bd9e959a32cfd8c3aec96410579cb9dccc.tar.gz |
drm/nouveau/bios/fan: add support for maxwell's fan management table v2
Re-use the therm-exported fan structure with only two minor modifications:
- pwm_freq: u16 -> u32;
- add fan_type (toggle or PWM)
v2:
- Do not memset the table to 0 as it erases the pre-set default values
Signed-off-by: Martin Peres <martin.peres@free.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/core/include/subdev')
-rw-r--r-- | drivers/gpu/drm/nouveau/core/include/subdev/bios/fan.h | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/core/include/subdev/bios/therm.h | 10 |
2 files changed, 17 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/fan.h b/drivers/gpu/drm/nouveau/core/include/subdev/bios/fan.h new file mode 100644 index 0000000..119d087 --- /dev/null +++ b/drivers/gpu/drm/nouveau/core/include/subdev/bios/fan.h @@ -0,0 +1,8 @@ +#ifndef __NVBIOS_FAN_H__ +#define __NVBIOS_FAN_H__ + +#include <subdev/bios/therm.h> + +u16 nvbios_fan_parse(struct nouveau_bios *bios, struct nvbios_therm_fan *fan); + +#endif diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/therm.h b/drivers/gpu/drm/nouveau/core/include/subdev/bios/therm.h index 8dc5051..295d093 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/bios/therm.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/bios/therm.h @@ -23,6 +23,12 @@ struct nvbios_therm_sensor { struct nvbios_therm_threshold thrs_shutdown; }; +enum nvbios_therm_fan_type { + NVBIOS_THERM_FAN_UNK = 0, + NVBIOS_THERM_FAN_TOGGLE = 1, + NVBIOS_THERM_FAN_PWM = 2, +}; + /* no vbios have more than 6 */ #define NOUVEAU_TEMP_FAN_TRIP_MAX 10 struct nouveau_therm_trip_point { @@ -38,7 +44,9 @@ enum nvbios_therm_fan_mode { }; struct nvbios_therm_fan { - u16 pwm_freq; + enum nvbios_therm_fan_type type; + + u32 pwm_freq; u8 min_duty; u8 max_duty; |