Skip to content

Commit

Permalink
therm_adt746x: Always clear hardware bit which inverts fan speed range.
Browse files Browse the repository at this point in the history
This bit would get enabled sometimes (probably after suspend/resume), so the
fan would run at full speed below the temperature thresholds, but slow down and
eventually stop if temperatures rose above the thresholds... not exactly what
you want.

Signed-off-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
  • Loading branch information
Michel Dänzer authored and ozbenh committed Jun 2, 2009
1 parent a85c8e1 commit 0512a9a
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion drivers/macintosh/therm_adt746x.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
#define CONFIG_REG 0x40
#define MANUAL_MASK 0xe0
#define AUTO_MASK 0x20
#define INVERT_MASK 0x10

static u8 TEMP_REG[3] = {0x26, 0x25, 0x27}; /* local, sensor1, sensor2 */
static u8 LIMIT_REG[3] = {0x6b, 0x6a, 0x6c}; /* local, sensor1, sensor2 */
Expand Down Expand Up @@ -229,7 +230,8 @@ static void write_fan_speed(struct thermostat *th, int speed, int fan)

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

0 comments on commit 0512a9a

Please sign in to comment.