Fix fan speeds on ADM1026

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have the via datasheets and other info,
the scale factor for the via chips is correct.

Philip Pokorny wrote:
> Doh...  I guess I should RTFM next time...
> 
> A quick grep surprised me.  Almost all of the chips use a 22.5kHz clock for
> fan sensing.  I didn't expect that.  The exceptions are:
> 
> 1. The lm85 which has a 16-bit fan counter and 90kHz clock
> 2. The SMSC47m1 which has some funky preload thing going on
> 3. The VIA VT1211 and VT8231 which use 1310720 instead of 1350000
> 
> I wonder if the VIA scale factor (2^17 * 10) is a mistake.  Does anyone 
> have a
> datasheet for those chips?
> 
> :v)
> 
> Mark Studebaker wrote:
> 
>  > doc/fan-divisors also has a good explanation
>  >
>  > Philip Pokorny wrote:
>  >
>  >>Jean Delvare wrote:
>  >>
>  >>>>Jerome Hsiao @ Arima pointed out to me that the fan speeds from the
>  >>>>ADM1026 driver were not consistent with other drivers.
>  >>>>
>  >>>>Seems that most (all?) drivers assume two pulses per rev from the
>  >>>>fans.
>  >>>> I expected that users would need to use a "compute" directive to
>  >>>>modify the fan speed for the number of pulses-per-rev of their fans.
>  >>>>(All the fans I use are 4 ppr so I'm always having to "compute" a
>  >>>>correct value.)
>  >>>>
>  >>>>But it's not consistent with the other drives...
>  >>>>
>  >>>>So here is a patch to fix the ADM1026 so it reports fan speeds
>  >>>>consistent with the other drivers...
>  >>>>
>  >>>>This was done against CVS...
>  >>>>
>  >>>
>  >>>Well, that's what fanX_div is meant for. As far as I know, the 
> number of
>  >>>pulse/rotation depends mostly on the fan itself, not on the monitoring
>  >>>chipset. That's why we let the users change the fanX_div value through
>  >>>the config file.
>  >>>
>  >>>Maybe there's actually something to be fixed in the adm1026 driver, but
>  >>>maybe this is just a matter of setting the right fanX_div for unregular
>  >>>fans.
>  >>>
>  >>No, fan_div doesn't work that way in practice.
>  >>
>  >>Most (all?) drivers include fan_div in the conversion from counts to
>  >>RPM.  That means that when you change fan_div the RPM reading stays the
>  >>same.
>  >>
>  >>In practice, changing fan_div affects the minimum detectable fan speed
>  >>and the precision of the measured fan speed.
>  >>
>  >>With a 22.5kHz clock, and assuming 2 pulse/rev fans, you get the 
> following:
>  >>
>  >>                   RPM
>  >>                Min    Typ    Significant Bits in Count
>  >>     Fan Div    254    153     3000   4400   10k 4ppr
>  >>     -------- ------ ------   ------ ------  ---------
>  >>        1      2657   4411     7.81   7.26     5.08
>  >>        2      1329   2206     6.81   6.26     4.08
>  >>        4       664   1103     5.81   5.26     3.08
>  >>        8       332    551     4.81   4.26     2.08
>  >>
>  >>At a fan_div setting of 8, the 10k, 4ppr fan is only gating 4 counts on
>  >>average giving fan readings of:  14063 (3), 10547 (4), 8437 (5)
>  >>depending on how many counts you got that sample.  Clearly, you want to
>  >>set the fan_div as low as possible and still detect your fans.
>  >>
>  >>:v)
>  >>
>  >>--
>  >>Philip Pokorny, Director of Engineering
>  >>Tel: 415-358-2635   Fax: 415-358-2646   Toll Free: 888-PENGUIN
>  >>PENGUIN COMPUTING, INC.
>  >>www.penguincomputing.com
>  >>
>  >
> 
> 
> 



[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux