cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

therm.h (1468B)


      1/* SPDX-License-Identifier: MIT */
      2#ifndef __NVBIOS_THERM_H__
      3#define __NVBIOS_THERM_H__
      4struct nvbios_therm_threshold {
      5	u8 temp;
      6	u8 hysteresis;
      7};
      8
      9struct nvbios_therm_sensor {
     10	/* diode */
     11	s16 slope_mult;
     12	s16 slope_div;
     13	s16 offset_num;
     14	s16 offset_den;
     15	s8 offset_constant;
     16
     17	/* thresholds */
     18	struct nvbios_therm_threshold thrs_fan_boost;
     19	struct nvbios_therm_threshold thrs_down_clock;
     20	struct nvbios_therm_threshold thrs_critical;
     21	struct nvbios_therm_threshold thrs_shutdown;
     22};
     23
     24enum nvbios_therm_fan_type {
     25	NVBIOS_THERM_FAN_UNK = 0,
     26	NVBIOS_THERM_FAN_TOGGLE = 1,
     27	NVBIOS_THERM_FAN_PWM = 2,
     28};
     29
     30/* no vbios have more than 6 */
     31#define NVKM_TEMP_FAN_TRIP_MAX 10
     32struct nvbios_therm_trip_point {
     33	int fan_duty;
     34	int temp;
     35	int hysteresis;
     36};
     37
     38enum nvbios_therm_fan_mode {
     39	NVBIOS_THERM_FAN_TRIP = 0,
     40	NVBIOS_THERM_FAN_LINEAR = 1,
     41	NVBIOS_THERM_FAN_OTHER = 2,
     42};
     43
     44struct nvbios_therm_fan {
     45	enum nvbios_therm_fan_type type;
     46
     47	u32 pwm_freq;
     48
     49	u8 min_duty;
     50	u8 max_duty;
     51
     52	u16 bump_period;
     53	u16 slow_down_period;
     54
     55	enum nvbios_therm_fan_mode fan_mode;
     56	struct nvbios_therm_trip_point trip[NVKM_TEMP_FAN_TRIP_MAX];
     57	u8 nr_fan_trip;
     58	u8 linear_min_temp;
     59	u8 linear_max_temp;
     60};
     61
     62enum nvbios_therm_domain {
     63	NVBIOS_THERM_DOMAIN_CORE,
     64	NVBIOS_THERM_DOMAIN_AMBIENT,
     65};
     66
     67int
     68nvbios_therm_sensor_parse(struct nvkm_bios *, enum nvbios_therm_domain,
     69			  struct nvbios_therm_sensor *);
     70
     71int
     72nvbios_therm_fan_parse(struct nvkm_bios *, struct nvbios_therm_fan *);
     73#endif