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





------- Additional Comments From [EMAIL PROTECTED]  2006-09-11 12:33 -------
Well, nothing interesting.  The symptoms are a bit different, but it's still 
broken.

Anyway, I think I have figured out what to do to make it work. :-)

Namely, the problem is not with the fans themselves, but with the corresponding
power resources.

There are four power resources C34B - C34E that correspond to the fans C34F -
C352, respectively.  For each fan to work, its corresponding power resource
needs to be switched to 'on'.  However, the power resources usually become 'on'
after several attempts to switch them.  Moreover, each time

acpi_evaluate_object(resource->device->handle, "_ON", NULL, NULL)

is successful, even if the resource "refuses" to change its state.  Gently
speaking, the code in drivers/acpi/power.c is not prepared to cope with that.

For example, to switch fan C351 on, we need to turn on the power resource C34D,
which is done via acpi_power_on().  This function increases resource->references
to reflect the fact that the resource is needed for one more device.  However,
if the attempt to turn the resource 'on' actually fails, resource->references is
not decreased.  Moreover, if resource->references is greater than one, the
function doesn't even try to actually switch the resource, because it assumes it
has been turned 'on' already.  This way, after two unsuccessful attempts to turn
the resource 'on' we're toast (ie. resource->references is greater than one and
there won't be more attempts to turn in 'on' whatsoever).  As a result, the fan
is reported to be 'on', which is plain wrong and dangerous.

The solution is to make acpi_power_on() and acpi_power_off_device() manage
resource->references so that _unsuccessful_ operations are not counted.  Still,
although this also seems to help solve the suspend-resume related problem, the
initialization, suspend and resume of thermal zones and fans seems to be
logically wrong (I'll get back to this later).


------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
acpi-bugzilla mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to