[ltp] help needed: X61 fan control, and 2nd fan control

Henrique de Moraes Holschuh linux-thinkpad@linux-thinkpad.org
Mon, 1 Jun 2009 00:06:29 -0300


To make a long history, short: I think I found the way to switch the EC
tachometer to the secondary fan, which is present on the X61, and maybe
on other Lenovo ThinkPads.  Now, I need help from X61 owners (both with
one and two fans) to better narrow it down.

If there are other Lenovo thinkpads with two fans (the T61, maybe?), I'd
also appreciate a lot reports for such models.

Here's how it seems to work:  Bit 2 of EC register 0x31 sets which fan
the EC will monitor.  0 for the main fan, 1 for the secondary fan.  Do
NOT touch the other bits, they do something and I don't know what.

I'd like to have reports of what happen to the tachometer in a X61 when
bit 2 of EC register 0x31 is toggled.  Does it really show the speed of
the secondary fan?  Does it show 0 if there is no secondary fan (or it
is stopped)? 

Also, what happens if you try to control the fan speed and mode with bit
2 of EC 0x31 set?  Does it control just the second fan, just the first
fan, or both at the same time (likely)?

Here's  how to toggle the EC 0x31 bit 2:

With the module loaded with the experimental=1 parameter, use 
cat /proc/acpi/ibm/ecdump to check the value of EC register 0x31.

Then, use "echo 0x31 new_value > /proc/acpi/ibm/ecdump" (where new_value
is the value you read from ecdump, but with bit 2 set or reset.  Eg. if
EC 0x31 was 0x03, write 0x07 to set bit 2), to change from the primary
to secondary fan, and back.

How to test:
Just use the normal thinkpad-acpi fan-control commands.  They should
apply to whatever fan is selected by bit 2 of EC register 0x31 (or to
both, if the control is not separate).

Please report back, there's still time to get this into 2.6.31 :-)

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh