Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 175820
b: refs/heads/master
c: 1496e89
h: refs/heads/master
v: v3
  • Loading branch information
Darrick J. Wong authored and Benjamin Herrenschmidt committed Dec 9, 2009
1 parent d0dff19 commit 8fe261a
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 37580f3f229fa72f2ef73ea7df0a1d28a9dab36d
refs/heads/master: 1496e89ae2a0962748e55165a590fa3209c6f158
13 changes: 11 additions & 2 deletions trunk/drivers/macintosh/therm_adt746x.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ struct thermostat {
u8 limits[3];
int last_speed[2];
int last_var[2];
int pwm_inv[2];
};

static enum {ADT7460, ADT7467} therm_type;
Expand Down Expand Up @@ -229,19 +230,23 @@ static void write_fan_speed(struct thermostat *th, int speed, int fan)

if (speed >= 0) {
manual = read_reg(th, MANUAL_MODE[fan]);
manual &= ~INVERT_MASK;
write_reg(th, MANUAL_MODE[fan],
(manual|MANUAL_MASK) & (~INVERT_MASK));
manual | MANUAL_MASK | th->pwm_inv[fan]);
write_reg(th, FAN_SPD_SET[fan], speed);
} else {
/* back to automatic */
if(therm_type == ADT7460) {
manual = read_reg(th,
MANUAL_MODE[fan]) & (~MANUAL_MASK);

manual &= ~INVERT_MASK;
manual |= th->pwm_inv[fan];
write_reg(th,
MANUAL_MODE[fan], manual|REM_CONTROL[fan]);
} else {
manual = read_reg(th, MANUAL_MODE[fan]);
manual &= ~INVERT_MASK;
manual |= th->pwm_inv[fan];
write_reg(th, MANUAL_MODE[fan], manual&(~AUTO_MASK));
}
}
Expand Down Expand Up @@ -418,6 +423,10 @@ static int probe_thermostat(struct i2c_client *client,

thermostat = th;

/* record invert bit status because fw can corrupt it after suspend */
th->pwm_inv[0] = read_reg(th, MANUAL_MODE[0]) & INVERT_MASK;
th->pwm_inv[1] = read_reg(th, MANUAL_MODE[1]) & INVERT_MASK;

/* be sure to really write fan speed the first time */
th->last_speed[0] = -2;
th->last_speed[1] = -2;
Expand Down

0 comments on commit 8fe261a

Please sign in to comment.