Skip to contentSkip to conversation

therm_windtunnel doesn't work properly on PowerMac G4

PATCH In review Goffredo Baroncelli 1 participant 1 message Jul 30, 2014 Linux for power macintosh

lore
Share & tools
lore
#0 lore raw

PATCH 1/3 therm_windtunnel doesn't work properly on PowerMac G4

Rename the driver name

	therm_ds1775 -> MAC,ds1775
	therm_adm1030 -> MAC,adm1030

Start the background fan control loop from
the devices probing methods.

---
 drivers/macintosh/therm_windtunnel.c |   15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)
drivers/macintosh/therm_windtunnel.c +13 -2
index 3b4a157..9583413 100644
@@ -334,6 +334,15 @@ do_attach( struct i2c_adapter *adapter )
 	return 0;
 }
 
+static void
+try_start_control_loop(void)
+{
+	if (x.thermostat && x.fan && !x.running) {
+		x.running = 1;
+		x.poll_task = kthread_run(control_loop, NULL, "g4fand");
+	}
+}
+
 static int
 do_remove(struct i2c_client *client)
 {
@@ -364,6 +373,7 @@ attach_fan( struct i2c_client *cl )
 	printk("ADM1030 fan controller [@%02x]\n", cl->addr );
 
 	x.fan = cl;
+	try_start_control_loop();
  out:
 	return 0;
 }
@@ -397,6 +407,7 @@ attach_thermostat( struct i2c_client *cl )
 	x.overheat_temp = os_temp;
 	x.overheat_hyst = hyst_temp;
 	x.thermostat = cl;
+	try_start_control_loop();
 out:
 	return 0;
 }
@@ -404,8 +415,8 @@ out:
 enum chip { ds1775, adm1030 };
 
 static const struct i2c_device_id therm_windtunnel_id[] = {
-	{ "therm_ds1775", ds1775 },
-	{ "therm_adm1030", adm1030 },
+	{ "MAC,ds1775", ds1775 },
+	{ "MAC,adm1030", adm1030 },
 	{ }
 };