On Sat, 16 Apr 2005 20:17:01 +0200, Jean Delvare <khali at linux-fr.org> wrote: >+ } else { >+ unsigned int reg = 1350000U / val; >+ >+ /* Automatically pick the best divider, i.e. the one such >+ that the min limit will correspond to a register value >+ in the 96..192 range */ >+ new_div = 0; >+ while (reg > 192) { >+ reg >>= 1; >+ new_div++; >+ } >+ data->fan_min[nr] = reg; >+ } This part of your code produces an error, as it fails to check for for going one step too far in fan clock divider. Cheers, Grant.