5 #include "../common/fan_control.h"
81 u16 index_add, data_add;
83 data_add = index_add + 1;
84 outb(index, index_add);
90 u16 index_add, data_add;
92 data_add = index_add + 1;
93 outb(index, index_add);
100 u8 use_mask =
mask << shift;
128 for (i = 0; i <
count; i++) {
129 current_value = values[i];
132 if (current_value >= last_value)
134 last_value = current_value;
173 u8 index, high_value, low_value;
226 u8 shift, index, byte;
274 value = boundaries[i];
283 temp = (255 *
value) / 100;
#define printk(level,...)
void outb(u8 val, u16 port)
#define FAN_SECTION_SPEED
#define FAN_TYPE_SHIFT(fan)
#define FAN_MODE_SHIFT(fan)
#define TP_EXTERNAL_SENSOR1_OPEN
#define FAN_TEMP_SEL_LOW_MASK
#define STATUS_INVALID_VALUE
#define FAN_JUMP_UP_SHIFT
#define FAN_ADJUST(fan, start)
#define FAN_DOWN_RATE_REG
#define FAN_JUMP_DOWN_SHIFT
#define FAN1_ADJ_SEL_MASK
#define FAN_RATE_SHIFT(fan)
#define FAN_TEMP_SEL_HIGH_SHIFT
#define FAN_FUNC_PROG_SEL_SHIFT
#define TP_SENSOR_TYPE_MASK
#define TP_SENSOR1_TYPE_SHIFT
#define FAN_DOWN_RATE_DIFF_FROM_UP_SHIFT
#define TP_SENSOR2_TYPE_SHIFT
#define FAN_PWM_FREQ_SEL_SHIFT
#define FAN_FAULT_TIME_REG
#define STATUS_INVALID_ORDER
#define FAN_FREQ_SEL_ADD_SHIFT(fan)
#define TP_EXTERNAL_SENSOR2_OPEN
#define FAN1_ADJ_SEL_SHIFT
#define FAN_TEMP_SEL_LOW_SHIFT
#define FAN_INTERPOLATION_SHIFT
int set_sections(u16 base_address, u8 fan, u8 *boundaries, u8 *sections)
static int message_invalid_1(int err, u8 fan)
static u8 read_hwm_reg(u16 address, u8 index)
static void write_hwm_reg(u16 address, u8 index, u8 value)
static const char msg_err_invalid[]
int set_fan_speed_change_rate(u16 base_address, u8 fan, fan_rate_up rate_up, fan_rate_down rate_down)
static const char msg_err_type[]
static struct cross_ref msg_table[]
static const char msg_err_section[]
static const char * get_msg(int err)
static const char msg_err_wrong_order[]
static const char no_msg[]
static const char msg_err_temp_source[]
static const char msg_err_frequency[]
int set_pwm_frequency(u16 base_address, u8 fan, fan_pwm_freq frequency)
static void hwm_reg_modify(u16 address, u8 index, u8 shift, u8 mask, u8 value)
static const char msg_err_temp_sensor[]
int set_fan_temperature_source(u16 base_address, u8 fan, fan_temp_source source)
static const char msg_err_mode[]
static void select_hwm_bank(u16 address, u8 value)
static int check_value_seq(u8 *values, u8 count)
int set_fan_type_mode(u16 base_address, u8 fan, fan_type type, fan_mode mode)
static int message_invalid_2(int err, u8 fan)
int set_sensor_type(u16 base_address, external_sensor sensor, temp_sensor_type type)
static const char msg_err_fan[]
int set_fan_follow(u16 base_address, u8 fan, fan_follow follow)
static const char msg_err_bondary[]
static const char msg_err_rate[]
#define FINTEK_BOUNDARIES_SIZE
#define HWM_STATUS_SUCCESS
#define HWM_STATUS_INVALID_FAN
#define HWM_STATUS_INVALID_RATE
#define HWM_STATUS_INVALID_TEMP_SENSOR
#define HWM_STATUS_INVALID_FREQUENCY
@ FAN_DOWN_RATE_SAME_AS_UP
#define HWM_STATUS_INVALID_TEMP_SOURCE
#define HWM_STATUS_BOUNDARY_WRONG_ORDER
#define FINTEK_SECTIONS_SIZE
#define HWM_STATUS_INVALID_MODE
#define HWM_STATUS_INVALID_TYPE
#define HWM_STATUS_SECTIONS_WRONG_ORDER
#define HWM_STATUS_WARNING_SENSOR_DISCONNECTED
#define FAN_TYPE_PWM_CHECK
#define HWM_STATUS_WARNING_FAN_NOT_PWM
#define HWM_STATUS_INVALID_SECTION_VALUE
#define HWM_STATUS_INVALID_BOUNDARY_VALUE
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
#define BIOS_ERR
BIOS_ERR - System in incomplete state.
#define BIOS_WARNING
BIOS_WARNING - Bad configuration.