mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-10-31 13:10:30 +00:00
Rename fscher fan_min to pwn (which it really is). (Reinhard
Nissl) git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2280 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
1 parent
70d27bc759
commit
5007ebb449
3 files changed
+91
-44
No files matched your search
+73
-26
@@ -144,12 +144,16 @@ static void fscher_init_client(struct i2c_client *client);
|
||||
|
||||
static void fscher_in(struct i2c_client *client, int operation, int ctl_name,
|
||||
int *nrels_mag, long *results);
|
||||
static void fscher_pwm(struct i2c_client *client, int operation,
|
||||
int ctl_name, int *nrels_mag, long *results);
|
||||
static void fscher_pwm_internal(struct i2c_client *client, int operation,
|
||||
int ctl_name, int *nrels_mag, long *results,
|
||||
int nr, int reg_min);
|
||||
static void fscher_fan(struct i2c_client *client, int operation,
|
||||
int ctl_name, int *nrels_mag, long *results);
|
||||
static void fscher_fan_internal(struct i2c_client *client, int operation,
|
||||
int ctl_name, int *nrels_mag, long *results,
|
||||
int nr, int reg_state, int reg_min,
|
||||
int res_ripple);
|
||||
int nr, int reg_state, int res_ripple);
|
||||
static void fscher_temp(struct i2c_client *client, int operation,
|
||||
int ctl_name, int *nrels_mag, long *results);
|
||||
static void fscher_volt(struct i2c_client *client, int operation,
|
||||
@@ -172,11 +176,11 @@ static struct i2c_driver fscher_driver = {
|
||||
#define FSCHER_SYSCTL_VOLT0 1000 /* 12 volt supply */
|
||||
#define FSCHER_SYSCTL_VOLT1 1001 /* 5 volt supply */
|
||||
#define FSCHER_SYSCTL_VOLT2 1002 /* batterie voltage */
|
||||
#define FSCHER_SYSCTL_FAN0 1101 /* state, min, ripple, actual value
|
||||
#define FSCHER_SYSCTL_FAN0 1101 /* state, ripple, actual value
|
||||
fan 0 */
|
||||
#define FSCHER_SYSCTL_FAN1 1102 /* state, min, ripple, actual value
|
||||
#define FSCHER_SYSCTL_FAN1 1102 /* state, ripple, actual value
|
||||
fan 1 */
|
||||
#define FSCHER_SYSCTL_FAN2 1103 /* state, min, ripple, actual value
|
||||
#define FSCHER_SYSCTL_FAN2 1103 /* state, ripple, actual value
|
||||
fan 2 */
|
||||
#define FSCHER_SYSCTL_TEMP0 1201 /* state and value of sensor 0,
|
||||
cpu die */
|
||||
@@ -184,6 +188,9 @@ static struct i2c_driver fscher_driver = {
|
||||
motherboard */
|
||||
#define FSCHER_SYSCTL_TEMP2 1203 /* state and value of sensor 2,
|
||||
chassis */
|
||||
#define FSCHER_SYSCTL_PWM0 1301 /* min fan 0 */
|
||||
#define FSCHER_SYSCTL_PWM1 1302 /* min fan 1 */
|
||||
#define FSCHER_SYSCTL_PWM2 1303 /* min fan 2 */
|
||||
#define FSCHER_SYSCTL_REV 2000 /* revision */
|
||||
#define FSCHER_SYSCTL_EVENT 2001 /* global event status */
|
||||
#define FSCHER_SYSCTL_CONTROL 2002 /* global control byte */
|
||||
@@ -221,6 +228,12 @@ static ctl_table fscher_dir_table_template[] = {
|
||||
&i2c_sysctl_real, NULL, &fscher_fan},
|
||||
{FSCHER_SYSCTL_FAN2, "fan3", NULL, 0, 0644, NULL, &i2c_proc_real,
|
||||
&i2c_sysctl_real, NULL, &fscher_fan},
|
||||
{FSCHER_SYSCTL_PWM0, "pwm1", NULL, 0, 0644, NULL, &i2c_proc_real,
|
||||
&i2c_sysctl_real, NULL, &fscher_pwm},
|
||||
{FSCHER_SYSCTL_PWM1, "pwm2", NULL, 0, 0644, NULL, &i2c_proc_real,
|
||||
&i2c_sysctl_real, NULL, &fscher_pwm},
|
||||
{FSCHER_SYSCTL_PWM2, "pwm3", NULL, 0, 0644, NULL, &i2c_proc_real,
|
||||
&i2c_sysctl_real, NULL, &fscher_pwm},
|
||||
{FSCHER_SYSCTL_WDOG, "wdog", NULL, 0, 0644, NULL, &i2c_proc_real,
|
||||
&i2c_sysctl_real, NULL, &fscher_wdog},
|
||||
{0}
|
||||
@@ -539,6 +552,7 @@ void fscher_volt(struct i2c_client *client, int operation, int ctl_name,
|
||||
int *nrels_mag, long *results)
|
||||
{
|
||||
struct fscher_data *data = client->data;
|
||||
|
||||
if (operation == SENSORS_PROC_REAL_INFO)
|
||||
*nrels_mag = 2;
|
||||
else if (operation == SENSORS_PROC_REAL_READ) {
|
||||
@@ -564,25 +578,65 @@ void fscher_volt(struct i2c_client *client, int operation, int ctl_name,
|
||||
}
|
||||
}
|
||||
|
||||
void fscher_fan(struct i2c_client *client, int operation, int ctl_name,
|
||||
void fscher_pwm(struct i2c_client *client, int operation, int ctl_name,
|
||||
int *nrels_mag, long *results)
|
||||
{
|
||||
|
||||
switch(ctl_name) {
|
||||
case FSCHER_SYSCTL_PWM0:
|
||||
fscher_pwm_internal(client,operation,ctl_name,nrels_mag,results,
|
||||
0,FSCHER_REG_FAN0_MIN);
|
||||
break;
|
||||
case FSCHER_SYSCTL_PWM1:
|
||||
fscher_pwm_internal(client,operation,ctl_name,nrels_mag,results,
|
||||
1,FSCHER_REG_FAN1_MIN);
|
||||
break;
|
||||
case FSCHER_SYSCTL_PWM2:
|
||||
fscher_pwm_internal(client,operation,ctl_name,nrels_mag,results,
|
||||
2,FSCHER_REG_FAN2_MIN);
|
||||
break;
|
||||
default:
|
||||
printk("fscher: illegal pwm nr %d\n",ctl_name);
|
||||
}
|
||||
}
|
||||
|
||||
void fscher_pwm_internal(struct i2c_client *client, int operation,
|
||||
int ctl_name, int *nrels_mag, long *results,
|
||||
int nr, int reg_min)
|
||||
{
|
||||
struct fscher_data *data = client->data;
|
||||
|
||||
if (operation == SENSORS_PROC_REAL_INFO)
|
||||
*nrels_mag = 0;
|
||||
else if (operation == SENSORS_PROC_REAL_READ) {
|
||||
fscher_update_client(client);
|
||||
results[0] = data->fan_min[nr];
|
||||
*nrels_mag = 1;
|
||||
} else if (operation == SENSORS_PROC_REAL_WRITE) {
|
||||
if(*nrels_mag >= 1) {
|
||||
data->fan_min[nr] = results[0];
|
||||
printk("fscher: writing value 0x%02x to fan%d_min\n",
|
||||
data->fan_min[nr],nr);
|
||||
fscher_write_value(client,reg_min,data->fan_min[nr]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fscher_fan(struct i2c_client *client, int operation, int ctl_name,
|
||||
int *nrels_mag, long *results)
|
||||
{
|
||||
switch(ctl_name) {
|
||||
case FSCHER_SYSCTL_FAN0:
|
||||
fscher_fan_internal(client,operation,ctl_name,nrels_mag,results,
|
||||
0,FSCHER_REG_FAN0_STATE,FSCHER_REG_FAN0_MIN,
|
||||
FSCHER_REG_FAN0_RIPPLE);
|
||||
0,FSCHER_REG_FAN0_STATE, FSCHER_REG_FAN0_RIPPLE);
|
||||
break;
|
||||
case FSCHER_SYSCTL_FAN1:
|
||||
fscher_fan_internal(client,operation,ctl_name,nrels_mag,results,
|
||||
1,FSCHER_REG_FAN1_STATE,FSCHER_REG_FAN1_MIN,
|
||||
FSCHER_REG_FAN1_RIPPLE);
|
||||
1,FSCHER_REG_FAN1_STATE, FSCHER_REG_FAN1_RIPPLE);
|
||||
break;
|
||||
case FSCHER_SYSCTL_FAN2:
|
||||
fscher_fan_internal(client,operation,ctl_name,nrels_mag,results,
|
||||
2,FSCHER_REG_FAN2_STATE,FSCHER_REG_FAN2_MIN,
|
||||
FSCHER_REG_FAN2_RIPPLE);
|
||||
2,FSCHER_REG_FAN2_STATE, FSCHER_REG_FAN2_RIPPLE);
|
||||
break;
|
||||
default:
|
||||
printk("fscher: illegal fan nr %d\n",ctl_name);
|
||||
@@ -593,7 +647,7 @@ void fscher_fan(struct i2c_client *client, int operation, int ctl_name,
|
||||
|
||||
void fscher_fan_internal(struct i2c_client *client, int operation,
|
||||
int ctl_name, int *nrels_mag, long *results,
|
||||
int nr, int reg_state, int reg_min, int reg_ripple)
|
||||
int nr, int reg_state, int reg_ripple)
|
||||
{
|
||||
struct fscher_data *data = client->data;
|
||||
|
||||
@@ -602,10 +656,9 @@ void fscher_fan_internal(struct i2c_client *client, int operation,
|
||||
else if (operation == SENSORS_PROC_REAL_READ) {
|
||||
fscher_update_client(client);
|
||||
results[0] = data->fan_status[nr] & 0x04;
|
||||
results[1] = data->fan_min[nr];
|
||||
results[2] = data->fan_ripple[nr] & 0x03;
|
||||
results[3] = RPM_FROM_REG(data->fan_act[nr]);
|
||||
*nrels_mag = 4;
|
||||
results[1] = data->fan_ripple[nr] & 0x03;
|
||||
results[2] = RPM_FROM_REG(data->fan_act[nr]);
|
||||
*nrels_mag = 3;
|
||||
} else if (operation == SENSORS_PROC_REAL_WRITE) {
|
||||
if(*nrels_mag >= 1) {
|
||||
data->fan_status[nr] = results[0] & 0x04;
|
||||
@@ -613,18 +666,12 @@ void fscher_fan_internal(struct i2c_client *client, int operation,
|
||||
data->fan_status[nr],nr);
|
||||
fscher_write_value(client,reg_state,data->fan_status[nr]);
|
||||
}
|
||||
if(*nrels_mag >= 2) {
|
||||
data->fan_min[nr] = results[1];
|
||||
printk("fscher: writing value 0x%02x to fan%d_min\n",
|
||||
data->fan_min[nr],nr);
|
||||
fscher_write_value(client,reg_min,data->fan_min[nr]);
|
||||
}
|
||||
if(*nrels_mag >= 3) {
|
||||
if((results[2] & 0x03) == 0) {
|
||||
if(*nrels_mag >= 2) {
|
||||
if((results[1] & 0x03) == 0) {
|
||||
printk("fscher: fan%d ripple 0 not allowed\n",nr);
|
||||
return;
|
||||
}
|
||||
data->fan_ripple[nr] = results[2] & 0x03;
|
||||
data->fan_ripple[nr] = results[1] & 0x03;
|
||||
printk("fscher: writing value 0x%02x to fan%d_ripple\n",
|
||||
data->fan_ripple[nr],nr);
|
||||
fscher_write_value(client,reg_ripple,data->fan_ripple[nr]);
|
||||
|
||||
+15
-15
@@ -4038,20 +4038,20 @@ static sensors_chip_feature fscscy_features[] =
|
||||
SENSORS_FSCHER_TEMP3, RW,
|
||||
FSCHER_SYSCTL_TEMP2, VALUE(1), 0 },
|
||||
{ SENSORS_FSCHER_FAN1, "fan1", NOMAP, NOMAP,
|
||||
R, FSCHER_SYSCTL_FAN0, VALUE(4), 0 },
|
||||
R, FSCHER_SYSCTL_FAN0, VALUE(3), 0 },
|
||||
{ SENSORS_FSCHER_FAN2, "fan2", NOMAP, NOMAP,
|
||||
R, FSCHER_SYSCTL_FAN1, VALUE(4), 0 },
|
||||
R, FSCHER_SYSCTL_FAN1, VALUE(3), 0 },
|
||||
{ SENSORS_FSCHER_FAN3, "fan3", NOMAP, NOMAP,
|
||||
R, FSCHER_SYSCTL_FAN2, VALUE(4), 0 },
|
||||
{ SENSORS_FSCHER_FAN1_MIN, "fan1_min", SENSORS_FSCHER_FAN1,
|
||||
SENSORS_FSCHER_FAN1, RW,
|
||||
FSCHER_SYSCTL_FAN0, VALUE(2), 0 },
|
||||
{ SENSORS_FSCHER_FAN2_MIN, "fan2_min", SENSORS_FSCHER_FAN2,
|
||||
SENSORS_FSCHER_FAN2, RW,
|
||||
FSCHER_SYSCTL_FAN1, VALUE(2), 0 },
|
||||
{ SENSORS_FSCHER_FAN3_MIN, "fan3_min", SENSORS_FSCHER_FAN3,
|
||||
SENSORS_FSCHER_FAN3, RW,
|
||||
FSCHER_SYSCTL_FAN2, VALUE(2), 0 },
|
||||
R, FSCHER_SYSCTL_FAN2, VALUE(3), 0 },
|
||||
{ SENSORS_FSCHER_PWM1, "pwm1", SENSORS_FSCHER_FAN1,
|
||||
NOMAP, RW,
|
||||
FSCHER_SYSCTL_PWM0, VALUE(1), 0 },
|
||||
{ SENSORS_FSCHER_PWM2, "pwm2", SENSORS_FSCHER_FAN2,
|
||||
NOMAP, RW,
|
||||
FSCHER_SYSCTL_PWM1, VALUE(1), 0 },
|
||||
{ SENSORS_FSCHER_PWM3, "pwm3", SENSORS_FSCHER_FAN3,
|
||||
NOMAP, RW,
|
||||
FSCHER_SYSCTL_PWM2, VALUE(1), 0 },
|
||||
{ SENSORS_FSCHER_FAN1_STATE, "fan1_state", SENSORS_FSCHER_FAN1,
|
||||
SENSORS_FSCHER_FAN1, RW,
|
||||
FSCHER_SYSCTL_FAN0, VALUE(1), 0 },
|
||||
@@ -4063,13 +4063,13 @@ static sensors_chip_feature fscscy_features[] =
|
||||
FSCHER_SYSCTL_FAN2, VALUE(1), 0 },
|
||||
{ SENSORS_FSCHER_FAN1_RIPPLE, "fan1_ripple", SENSORS_FSCHER_FAN1,
|
||||
SENSORS_FSCHER_FAN1, RW,
|
||||
FSCHER_SYSCTL_FAN0, VALUE(3), 0 },
|
||||
FSCHER_SYSCTL_FAN0, VALUE(2), 0 },
|
||||
{ SENSORS_FSCHER_FAN2_RIPPLE, "fan2_ripple", SENSORS_FSCHER_FAN2,
|
||||
SENSORS_FSCHER_FAN2, RW,
|
||||
FSCHER_SYSCTL_FAN1, VALUE(3), 0 },
|
||||
FSCHER_SYSCTL_FAN1, VALUE(2), 0 },
|
||||
{ SENSORS_FSCHER_FAN3_RIPPLE, "fan3_ripple", SENSORS_FSCHER_FAN3,
|
||||
SENSORS_FSCHER_FAN3, RW,
|
||||
FSCHER_SYSCTL_FAN2, VALUE(3), 0 },
|
||||
FSCHER_SYSCTL_FAN2, VALUE(2), 0 },
|
||||
{ SENSORS_FSCHER_WDOG_PRESET, "wdog_preset", NOMAP,
|
||||
NOMAP, RW,
|
||||
FSCHER_SYSCTL_WDOG, VALUE(1), 0 },
|
||||
|
||||
+3
-3
@@ -1514,9 +1514,9 @@
|
||||
#define SENSORS_FSCHER_FAN1 4 /* R */
|
||||
#define SENSORS_FSCHER_FAN2 5 /* R */
|
||||
#define SENSORS_FSCHER_FAN3 6 /* R */
|
||||
#define SENSORS_FSCHER_FAN1_MIN 7 /* RW */
|
||||
#define SENSORS_FSCHER_FAN2_MIN 8 /* RW */
|
||||
#define SENSORS_FSCHER_FAN3_MIN 9 /* RW */
|
||||
#define SENSORS_FSCHER_PWM1 7 /* RW */
|
||||
#define SENSORS_FSCHER_PWM2 8 /* RW */
|
||||
#define SENSORS_FSCHER_PWM3 9 /* RW */
|
||||
#define SENSORS_FSCHER_FAN1_STATE 10 /* RW */
|
||||
#define SENSORS_FSCHER_FAN2_STATE 11 /* RW */
|
||||
#define SENSORS_FSCHER_FAN3_STATE 12 /* RW */
|
||||
|
||||
Reference in new issue
Block a user