No subject
Thu Aug 12 18:07:19 CEST 2010
pwm1_enable=3D0
pwm2_enable=3D0
wait...
for each PWM:
=A0=A0 this pwm_enable=3D1
=A0=A0 this pwm=3D0
=A0=A0 for each fan
=A0=A0 =A0 =A0compare this fan before / after
=A0=A0 =A0 =A0this pwm_enable=3D0
=A0=A0 =A0 =A0check fan returns to normal
=A0=A0 next fan
next pwm
The problem with this logic is that for each PWM, the pwm_enable is
set to 1, then the first fan is tested, after the first fan is tested,
the pwm is disabled and never re-enabled (until the next pwm)...
This means the pwm1=3Dfan1 correlation is detected, but pwm2=3Dfan2 is not
- but only because the pwm_enable is still set to 0 when the second
and subsequent fans are tested...
There are several ways to fix this, but after some pondering, I think
that this logic might be most appropriate:
pwm1_enable=3D0
pwm2_enable=3D0
wait...
for each PWM:
=A0=A0 for each fan
=A0=A0 =A0 =A0this pwm_enable=3D1
=A0=A0 =A0 =A0this pwm=3D0
=A0=A0 =A0 =A0compare this fan before / after
=A0=A0 =A0 =A0this pwm_enable=3D0
=A0=A0 =A0 =A0check fan returns to normal
=A0=A0 next fan
next pwm
This causes the given pwm/fan to stop/start once for each fan input,
which might seem bad, but then each fan is individually checked to
make sure that it has begun spinning again after pwm_enable is set to
0... (as compared to stopping and starting once per pwm...)
I have a patch which I can supply. It fixes the problem for me, but
I'm not 100% sure if it introduces any other problems. Let me know if
I should email it or submit somewhere etc...
I would value hearing what others think about this problem...
Thanks
Charles
More information about the lm-sensors
mailing list