hi, I've tried your patch, but I can't comment on the changes syncing the fans because my powerbook just has one.
But when watching the behaviour of the fan speed stepping code I noticed that it happens quite often that when reducing the fan speed it will get set to values < fan_speed because of (var > -2). I don't know wether this is intended but I think it is a indeed a good idea to slightly expand the range between starting the fan and overriding the value, starting out really slow. However it would be good to add another check for a reasonably high new_speed because by changing the fan_speed parameter one could reach fan speeds as low as 1. Maybe 20 is a good lower bound value... additionally, it doesn't look like the special case of overriding the specified fan speed is needed anymore because at var == 8 and latest at var ==9 (because of hysteresis) we reach 255 anyways, but var == 9 also is the first case where we would override... regards, georg kaindl