http://bugzilla.kernel.org/show_bug.cgi?id=13497





--- Comment #9 from Steve Hill <st...@nexusuk.org>  2009-06-15 09:12:16 ---
Unfortunately I don't have access to Windows, although some googling around
suggests that it might be a problem under Windows too (similar but not
identical model laptop:
http://forum.soft32.com/windows/Fan-runs-high-speed-resuming-standby-ftopict350097.html).
 I've contacted Acer about this but don't really have any hope of them even
caring - my experience of Acer customer support is rather poor.

I have found a work-around though:
The DSDT seems to show that various bits of integrated hardware are controlled
by storing an 8 bit value into SMIF and then storing zero into TRP0 - for
example, to read the CPU temperature, we have:
    If (LEqual (RTMP, One))
    {
        Store (0x87, SMIF)
        Store (Zero, TRP0)
    }
    Store (One, RTMP)
    If (LGreaterEqual (DTS1, DTS2))
    {
        Return (Add (0x0AAC, Multiply (DTS1, 0x0A)))
    }
    Return (Add (0x0AAC, Multiply (DTS2, 0x0A)))

>From this, it looks like SMIF is used to pass a command (presumably to an
embedded controller?) and sending zero to TRP0 is used to give the embedded
controller an interrupt.  From experimentation, in the above code, setting SMIF
to 0x87 and then sending zero to TRP0 causes DTS1 and DTS2 to be updated with
the current temperatures.

On my system, SMIF is at memory address 0x7f66bdbe (offset 2 of GNVS
[0x7f66bdbc] - this is at the top end of the (2GB) of RAM installed, so
presumably will move if more RAM is installed).  TRP0 is I/O port 0x0808
(offset 8 of IO_T [0x0800]).

After some trial end error, it seems that storing 0x86 in SMIF and 0 in TRP0
causes the fan speed to be re-set based on the current temperature.  So the
upshot of this is that the problem can be worked around by writing 0x86 to
memory address 0x7f66bdbe and then 0 to port 0x0808 after the system is resumed
from standby.

An important note: I haven't found any kind of documentation - this was
discovered by making wild assumptions based on parts of the DSDT and a lot of
trial and error.  I haven't seen any side effects from using this work-around,
but that doesn't mean they don't exist.

-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to