Re: Wakeup from suspend via keyboard and mouse doesn't work anymore with 2.6.27-rc

Previous thread: [PATCH] trigger a panic when operating in FIPS mode and a crypto self test fails. by Neil Horman on Monday, September 22, 2008 - 12:27 pm. (2 messages)

Next thread: [PATCH 0/4] x86: UV runtime bios calls by Russ Anderson on Monday, September 22, 2008 - 2:06 pm. (4 messages)
From: Tino Keitel
Date: Monday, September 22, 2008 - 1:29 pm

Hi,

my Mac mini core duo used to wake up from suspend to RAM when a key or
mouse button is pressed. This doesn't work anymore with 2.6.27-rc, the
current version that I tried is 2.6.27-rc7. I checked /proc/acpi/wakeup
for differences, with 2.6.26 and 2.6.27-rc, but both were identical:

Device	S-state	  Status   Sysfs node
PXS1	  S4	 disabled  pci:0000:01:00.0
PXS2	  S4	 disabled  pci:0000:02:00.0
USB1	  S3	 disabled  pci:0000:00:1d.0
USB2	  S3	 disabled  pci:0000:00:1d.1
USB3	  S3	 disabled  pci:0000:00:1d.2
USB4	  S3	 disabled  pci:0000:00:1d.3
USB7	  S3	 enabled   pci:0000:00:1d.7

Wakeup with the power switch at the back still works.

Any hints if there are some commits that I should try to revert, before
I start bisecting?

Regards,
Tino
--

From: Tino Keitel
Date: Monday, September 22, 2008 - 1:46 pm

Forgot to mention: both devices are USB devices.

Regards,
Tino
--

From: Rafael J. Wysocki
Date: Monday, September 22, 2008 - 2:09 pm

I don't think you need to revert anything. :-)

Please check if the /sys/devices/.../power/wakeup file contains 'enabled' for
the USB controller pci:0000:00:1d.7 (I assume this is the one the keyboard &
mouse are attached to).  If it doesn't, please try to write 'enabled' to this
file and retest.

Thanks,
Rafael
--

From: Tino Keitel
Date: Monday, September 22, 2008 - 2:18 pm

Yes, this works. Thanks.

Regards,
Tino
--

From: Rafael J. Wysocki
Date: Thursday, September 25, 2008 - 3:35 pm

This actually is a regression for which I'm sorry.

Can you please check if the appended patch restores the previous behavior?

Thanks,
Rafael

---
From: Rafael J. Wysocki <rjw@sisk.pl>

ACPI: Make /proc/acpi/wakeup interface handle PCI devices

Make the ACPI /proc/acpi/wakeup interface set the appropriate
wake-up bits of physical devices corresponding to the ACPI
devices and make those bits be set initially for devices that are
enabled to wake up by default.  This is needed to restore the
previous behavior for the PCI devices that were previously handled
correctly with the help of the /proc/acpi/wakeup interface.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
 drivers/acpi/glue.c       |    5 ++++-
 drivers/acpi/sleep/proc.c |   10 ++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

Index: linux-2.6/drivers/acpi/sleep/proc.c
===================================================================
--- linux-2.6.orig/drivers/acpi/sleep/proc.c
+++ linux-2.6/drivers/acpi/sleep/proc.c
@@ -377,6 +377,14 @@ acpi_system_wakeup_device_seq_show(struc
 	return 0;
 }
 
+static void physical_device_enable_wakeup(struct acpi_device *adev)
+{
+	struct device *dev = acpi_get_physical_device(adev->handle);
+
+	if (dev && device_can_wakeup(dev))
+		device_set_wakeup_enable(dev, adev->wakeup.state.enabled);
+}
+
 static ssize_t
 acpi_system_write_wakeup_device(struct file *file,
 				const char __user * buffer,
@@ -411,6 +419,7 @@ acpi_system_write_wakeup_device(struct f
 		}
 	}
 	if (found_dev) {
+		physical_device_enable_wakeup(found_dev);
 		list_for_each_safe(node, next, &acpi_wakeup_device_list) {
 			struct acpi_device *dev = container_of(node,
 							       struct
@@ -428,6 +437,7 @@ acpi_system_write_wakeup_device(struct f
 				       dev->pnp.bus_id, found_dev->pnp.bus_id);
 				dev->wakeup.state.enabled =
 				    found_dev->wakeup.state.enabled;
+				physical_device_enable_wakeup(dev);
 			}
 		}
 	}
Index: ...
From: Tino Keitel
Date: Monday, September 29, 2008 - 2:19 pm

On Fri, Sep 26, 2008 at 00:35:08 +0200, Rafael J. Wysocki wrote:


Yes, with this patch wakeup using the keyboard works as it did with
2.6.26.

Thanks and regards,
Tino
--

From: Rafael J. Wysocki
Date: Monday, September 29, 2008 - 2:58 pm

Thanks for testing.

Can you also check if this patch is sufficient to fix the sky2 issue, or if you
need the patch I sent in the sky2 thread in addition to it?

Thanks,
Rafael
--

From: Tino Keitel
Date: Tuesday, September 30, 2008 - 12:53 pm

With this patch only, WOL is still broken. The machine doesn't wake up
and the power/wakeup entry for the sky2 device stays at "disabled"
after I enable WOL. With the WOL patch, power/wakeup changed to
"enabled" after "ethtool -s eth0 wol g".

Regards,
Tino
--

From: Rafael J. Wysocki
Date: Tuesday, September 30, 2008 - 1:09 pm

OK, thanks for testing.

I'm going to submit the sky2 patch for merging too.

Thanks,
Rafael
--

Previous thread: [PATCH] trigger a panic when operating in FIPS mode and a crypto self test fails. by Neil Horman on Monday, September 22, 2008 - 12:27 pm. (2 messages)

Next thread: [PATCH 0/4] x86: UV runtime bios calls by Russ Anderson on Monday, September 22, 2008 - 2:06 pm. (4 messages)