therm_windtunnel doesn't work properly on PowerMac G4
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.
Signed-off-by Goffredo Baroncelli <[email protected]>
--- drivers/macintosh/therm_windtunnel.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)
drivers/macintosh/therm_windtunnel.c +13 -2
@@ -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 }, { } };