I installed Ubuntu 8.10 on this Powerbook G4 ("alu" I think) for a friend of mine. As soon as therm_adt746x got loaded, the fan turned into a noise steam engine.
This was on Ubuntu's 2.6.31 kernel (2.6.31-14-powerpc) which includes 0512a9a8e277a9de2. I could reproduce it with latest mainline as well. The effect was just as Michel described in the changelog; The fan was running while temps were well below any of the limits, and it stopped only when I set ridiculously low limits. [ 1087.141482] adt746x: version 1 (supported) [ 1087.141495] adt746x: Thermostat bus: 1, address: 0x2e, limit_adjust: 0, fan_speed: -1 [ 1087.141503] sensor 0: HDD BOTTOMSIDE [ 1087.141507] sensor 1: CPU TOPSIDE [ 1087.141512] sensor 2: GPU ON DIE [ 1087.161365] adt746x: ADT7460 initializing [ 1087.165245] adt746x: Lowering max temperatures from 73, 80, 109 to 70, 50, 70 [ 1087.165261] adt746x: Setting speed to 0 for CPU TOPSIDE fan. [ 1087.166302] adt746x: Setting speed to 0 for GPU ON DIE fan. (What "worked" was limit_adjust=-30, fan did turn off, but so did the Powerbook shortly after, despite being cold.) After some poking around, in which everything seemed to be according to plan including write of 0 to both FAN_SPD_SET regs, I noticed that explicitly *setting* the invert bit as in - write_reg(th, MANUAL_MODE[fan], - (manual|MANUAL_MASK) & (~INVERT_MASK)); + write_reg(th, MANUAL_MODE[fan], + (manual|MANUAL_MASK|INVERT_MASK)); seems to cure it. The fan appears to behave normally now, it turns on slowly when the temp limits are reached, otherwise it stays off. The temperature is reasonable (ie, no too hot). So, puzzeled, I checked the spec, and it appears very clear on the question of invert: It should be off by default. I'm about to give the laptop back to my friend, but I suppose I could borrow it for further tests if anyone could guide me how to dig further into this. Any hw/openfirmware details interesting? Max _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev