[ltp] Fan-questions again...

Henrique de Moraes Holschuh linux-thinkpad@linux-thinkpad.org
Fri, 12 Jan 2007 02:21:18 -0200


On Thu, 11 Jan 2007, Benjamin Buch wrote:
> Am Mittwoch, den 10.01.2007, 17:26 -0200 schrieb Henrique de Moraes
> Holschuh:
> > On Wed, 10 Jan 2007, Gilson Laurent wrote:
> > > > -is there a way to lower the fan speed except changing levels?
> > > 
> > > Not w/o opening the laptop. Don't do it.
> > 
> > Actually, you can hack the EC firmware (good luck on that, you're on your
> > own).  If you had one of the few X-series models that allow one to change
> > the speed range directly through ACPI, you could improve ibm-acpi to do that
> > instead (or convince me to do that work).  Note: the X60 cannot.  That
> > feature didn't stay for long...
> > 
> No, thanks, I'm not that familiar with fw-hacking...
> Why did they implement the direct speed range change only in x-models?

Someone implemented it in the EC and ACPI tables of the X30.  Nobody at IBM
wrote the userland code, AFAIK -- I never heard of any ThinkPad windows
utility that let you set the fan speeds.

So, I'd guess that without any users that IBM cared for, it eventually got
lost to the sands of time.  It is no more even before the ThinkPads were
handed to Lenovo.

Here's what the removed interface allowed one to do:

 1. it allows you to set the *real* three fan speeds (in RPM) that the
ThinkPads usually have (they map to levels 1-7, but there are usually only
three speeds really, not counting "stop" and "full blast"/disengaged mode).

 2. There are two or three sets of those three speeds (I forget how many),
that are selected depending on battery operations (don't ask me which, it is
not obvious from a quick read of the DSDT code).

 3. It also allows to map which of the three speeds gets mapped to each of
the fan levels.  You could get levels 1 and 2 to not start the fan in a X30
using this interface.  T43 owners would *LOVE* to have this feature...

Yes, ibm-acpi does *not* allow full access to that functionality.  It was
only partially implemented.  And it is unlikely to do so ever, unless
someone wants to write the code and test it.  Either that, or give me a
ThinkPad that supports it as a gift ;-)

BTW, maybe the EC firmware *still* allows this control on later X models,
and even on other models... but it is gone from the ACPI tables, and
probably from the SMBIOS (and the X30 ACPI talks to the BIOS to change
them).

If anyone wants to try to search for this lost functionality on ThinkPads,
someone will have to reverse engineer it using the clean room protocols and
post the interface documentation to the public.

Just an intersting fact: many thinkpads appear to have the ACPI variables
that used to hold the reference BIOS RPM fan speeds used by the removed
interface.  What that means, is something for the adventurous to find out
:-)

-- 
  "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