[PATCH] acpi: bus: handle power manageable but no _PSC/_PRx case

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Currently, when we are trying to get the power state of an acpi device,
we will do the following:
If device is not power manageable, init its power state as its parent or
if it does not have a parent, init as D0;
If device is power manageable, evaluate _PSC and then refine with
acpi_power_get_inferred_state.

But there exist some devices with _PSx defined, but no _PSC or _PRx.
It is power manageable, but the above method to get power state does
not cover this case and its power state will be UNKNOWN(255).

So change the check of power manageable to whether _PSC and _PRx
defined.

Signed-off-by: Aaron Lu <aaron.lu@xxxxxxxxx>
---
 drivers/acpi/bus.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 9628652..b564e6d 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -207,7 +207,8 @@ static int __acpi_bus_get_power(struct acpi_device *device, int *state)
 	if (!device || !state)
 		return -EINVAL;
 
-	if (!device->flags.power_manageable) {
+	if (!device->power.flags.explicit_get &&
+			!device->power.flags.power_resources) {
 		/* TBD: Non-recursive algorithm for walking up hierarchy. */
 		*state = device->parent ?
 			device->parent->power.state : ACPI_STATE_D0;
-- 
1.7.12.21.g871e293

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


[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux