[PATCH] hwmon: it87 support for 16-bit fan reading in 8712 rev 8 and new module param

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

 



On Sun, Feb 24, 2008 at 11:43 AM, Jean Delvare <khali at linux-fr.org> wrote:

> As a side note, I think it's rather weird that the IT8712F rev. J (and
> later) do default to 8-bit fan speed values while they no longer
> support fan clock dividers. As these revisions of the chip are not
> backward compatible with the older revisions, ITE should really have
> switched to a saner default.
>

Yes, strange.. see below.

>> The it8712 chip type now enables 16-bit fan tachometer reading to get
>> proper readings. The register used in the it8712old chip type no longer
>> has the same meaning in rev 8 of the chip.
>
> Which register are you talking about please?

If you compare the PDF documents here:
http://www.ite.com.tw/product_info/PC/Brief-IT8712_2.asp

v0.8.2 shows 9.6.2.2.12 Fan Tachometer Divisor Register (Index=0Bh,
Default=09h) using bits 0-6 for the divisors. This version corresponds
to revisions of the chip < 0x8.

v0.9.1 & v0.9.3 show the same register having bits 0-5 reserved and
6-7 are the PWM Smoothing Step Frequency Selection. This version
corresponds to revisions of the chip >= 0x8.

Since those bit ranges overlap, I don't see how they could be
preserving the "old" behavior. They could have done that if bits 0-6
were reserved, but the new meaning of bits 6-7 overlaps the old FAN3
divisor. Strangely, both revisions say they have a default value of
09h. (Documentation error?)

>> Also, a new module param array enable_fans is added. This was needed to
>> get fan2 to show up on an it8712 rev 8 chip which was not enabled at
>> boot time by the BIOS. The module param is checked and if a fan index
>> value is 1, the fan is forced on even if it is not configured that way
>> from the BIOS.
>
> This is a BIOS bug, which should be fixed in the BIOS. Please report to
> your motherboard manufacturer and get them to fix the bug. What
> motherboard is this, BTW? Usually motherboard BIOS enable all fans, or
> none; I don't remember seeing a BIOS (improperly) enabling a subset
> only.
>

I've reported this to the motherboard manufacturer and I'm waiting to
hear back if they confirm that it is a BIOS setup issue on their side.
The board in question is the Albatron KI 690-AM2 motherboard. This
board has a 4-pin & a 3-pin fan header. The main fan control register
has a value of 0x11 which indicates that only FAN1 is active (in
SmartGuardian mode). If I manually hack the driver to always set bit 5
of the register (9.6.2.2.16 Fan Controller Main Control Register
(Index=13h, Default=07h) in the docs), then I get a valid fan reading
from my CPU fan on "fan2" plugged into the 3-pin header. Short of a
BIOS update to fix this, I'd have to hack it to allow me to force
enable the second fan to get a valid reading.

I've reworked the code to just add a revision field as you noted and
to only contain the 16-bit tach change. Please review and let me know
what you think re: force enabling the fans via a module parameter
bitmask or something similar.

Thanks,
-Andrew
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0001-hwmon-it87-support-for-16-bit-fan-reading-in-it8712-rev-8.txt
Url: http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20080624/a248a6bb/attachment.txt 


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

  Powered by Linux