https://bugzilla.kernel.org/show_bug.cgi?id=43228





--- Comment #9 from Rafael J. Wysocki <r...@sisk.pl>  2012-05-16 19:33:35 ---
Well, this is not a correct fix.  I would prefer it if you didn't guess things,
but tried to understand what really happened instead. :-)

acpi_bus_get_power_flags() works as intended, ie. it only sets the "valid" flag
for ACPI_STATE_D3_HOT if _PR3 is present, so the problem has to be elsewhere.

So, let's see why it still doesn't work with the patch from comment #5 applied.

 * pci_set_power_state(dis_dev, PCI_D3hot) is called.

 * __pci_complete_power_transition(dev, PCI_D3hot) is called.

 * pci_platform_power_transition(dev, PCI_D3hot) is called.

 * platform_pci_set_power_state(dev, PCI_D3hot) is called.  This calls
   pci_platform_pm->set_state() with the same arguments, which for ACPI
   points to acpi_pci_set_power_state().

 * acpi_pci_set_power_state(dev, PCI_D3hot) is called.  With the patch from
   comment #5 applied it choses ACPI_STATE_D3 as the argument for
   acpi_bus_set_power(), which calls
   __acpi_bus_set_power(device, ACPI_STATE_D3), where ACPI_STATE_D3 == 4
   as you have observed already.

 * Thus object_name[] contains the string "_PS4", which obviously doesn't
   represent anything meaningful, right?

So, in addition to the patch in comment #5 we need the following change in
__acpi_bus_set_power():

Index: linux/drivers/acpi/bus.c
===================================================================
--- linux.orig/drivers/acpi/bus.c
+++ linux/drivers/acpi/bus.c
@@ -250,6 +250,10 @@ static int __acpi_bus_set_power(struct a
         return -ENODEV;
     }

+    /* _PS3 should be executed for transitions into D3cold. */
+    if (state == ACPI_STATE_D3_COLD)
+        object_name[3] = '3';
+
     /*
      * Transition Power
      * ----------------

I'll attach an updated patch in a while.

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

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to