git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git]
/
drivers
/
macintosh
/
therm_pm72.c
diff --git
a/drivers/macintosh/therm_pm72.c
b/drivers/macintosh/therm_pm72.c
index
fb2e070
..
32333f2
100644
(file)
--- a/
drivers/macintosh/therm_pm72.c
+++ b/
drivers/macintosh/therm_pm72.c
@@
-317,6
+317,20
@@
static int fan_write_reg(int reg, const unsigned char *ptr, int nb)
return nw;
}
return nw;
}
+static int start_fcu(void)
+{
+ unsigned char buf = 0xff;
+ int rc;
+
+ rc = fan_write_reg(0xe, &buf, 1);
+ if (rc < 0)
+ return -EIO;
+ rc = fan_write_reg(0x2e, &buf, 1);
+ if (rc < 0)
+ return -EIO;
+ return 0;
+}
+
static int set_rpm_fan(int fan, int rpm)
{
unsigned char buf[2];
static int set_rpm_fan(int fan, int rpm)
{
unsigned char buf[2];
@@
-1011,6
+1025,12
@@
static int main_control_loop(void *x)
down(&driver_lock);
down(&driver_lock);
+ if (start_fcu() < 0) {
+ printk(KERN_ERR "kfand: failed to start FCU\n");
+ up(&driver_lock);
+ goto out;
+ }
+
/* Set the PCI fan once for now */
set_pwm_fan(SLOTS_FAN_PWM_ID, SLOTS_FAN_DEFAULT_PWM);
/* Set the PCI fan once for now */
set_pwm_fan(SLOTS_FAN_PWM_ID, SLOTS_FAN_DEFAULT_PWM);
@@
-1057,6
+1077,7
@@
static int main_control_loop(void *x)
schedule_timeout(HZ - elapsed);
}
schedule_timeout(HZ - elapsed);
}
+ out:
DBG("main_control_loop ended\n");
ctrl_task = 0;
DBG("main_control_loop ended\n");
ctrl_task = 0;