Bummer.
It IS just a temperature sensor.
This leaves just the Embedded Controller, and only two more functions, which I don't completely understand.
Code:
Method (SFSD, 1, Serialized)
{
Multiply (Arg0, 0x40, Local1)
Divide (Local1, 0x64, Local2, Local0)
Subtract (0x40, Local0, Local0)
And (PWM0, 0x80, Local1)
If (LEqual (Local0, 0x40))
{
Or (Local1, 0x01, Local1)
}
Else
{
ShiftLeft (Local0, 0x01, Local0)
Or (Local0, Local1, Local1)
}
Store (Local1, PWM0)
}
SFSD. Set Fan Speed Direct/Decimal?. Takes one paramter, does some magic to it and stores it into a PWM variable...
Code:
Method (GFSD, 0, Serialized)
{
And (PWM0, 0x7F, Local0)
If (And (Local0, 0x01))
{
Store (0x00, Local1)
}
Else
{
ShiftRight (Local0, 0x01, Local0)
Subtract (0x40, Local0, Local0)
Multiply (Local0, 0x64, Local0)
Divide (Add (Local0, 0x20), 0x40, Local2, Local1)
Increment (Local1)
}
Return (Local1)
}
GFSD. Get Fan Speed Direct/Decimal?. Returns the PWM variable after some magic.
You may try
Code:
echo "\_SB.PCI0.LPCB.EC0.SFSD 0xXY" > /proc/acpi/call && echo $(cat /proc/acpi/call)
as root (sudo su)
with 0xXY one of: 0x1, 0x80, 0x81, or others you may think of. See what happens to the fan.
I haven't had any luck with these, though.
The fan would spin only to reach the target speed, but when it would need to keep stable it would turn off.
It spun as if only while ramping up speed.
If your fan manages to keep the speed stable after ramping up, we might finally have an answer.
Otherwise, I'm sorry. This is the last think I can think of.
Good luck!
Bookmarks