Bjorn Helgaas wrote:
There weren't many interesting changes in fan.c between 2.6.17 and
2.6.18. The problem you found is probably related to this:
http://bugzilla.kernel.org/show_bug.cgi?id=5000
The patch in comment #24 looks like this for add and resume:
result = acpi_bus_get_power(device->handle, &state);
+ if (state == ACPI_STATE_D0)
+ acpi_bus_set_power(fan->handle, ACPI_STATE_D3);
+ else if (state == ACPI_STATE_D3)
+ acpi_bus_set_power(fan->handle, ACPI_STATE_D0);
+ acpi_bus_set_power(fan->handle, state);
whereas the code in 2.6.18 is this:
result = acpi_bus_get_power(device->handle, &state);
+ device->flags.force_power_state = 1;
+ acpi_bus_set_power(device->handle, state);
+ device->flags.force_power_state = 0;
It's interesting that the bugzilla patch inverts the fan power state
while the 2.6.18 code does not.
Konstantin can probably give you more useful help. I don't know
the details of how the fan state is controlled.
Bjorn
I talked to Konstantin some time ago about this problem and he said that
2.6.18 contains some debug patch used in very beginning of 5000,
which was picked up by someone else. Konstantin already sent a patch to
convert to correct behavior, but its got stuck in ACPI pipeline...
Regards,
Alex.
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html