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

Re: [Xen-devel] xHCI not waking up from D3 after S3 Resume on Ivybridge



On Tue, Mar 20, 2012 at 10:44:15AM -0400, Tom Goetz wrote:
> 
> On Mar 19, 2012, at 6:11 PM, Sarah Sharp wrote:
> 
> > On Mon, Mar 19, 2012 at 05:05:47PM -0400, Tom Goetz wrote:
> >> On Mar 19, 2012, at 12:45 PM, Tom Goetz wrote:
> >>> On Mar 19, 2012, at 9:32 AM, Tom Goetz wrote:
> >>> I've just found that if the xHCI is in D3, has a USB device plugged in, 
> >>> and is not waking up, it will wake up when another device in D3 wakes up. 
> >>> Here's the steps I followed:
> >>> 
> >>> 1. S3 suspend
> >>> 2. S3 Resume
> >>> 3. set xHCI power policy to "auto"
> >>> 4. xHCI goes into D3
> >>> 5. Plug USB device into xHCI
> >>> 6. xHCI does not wake up
> >>> 7. set e1000e power policy to "auto"
> >>> 8. Unplug ethernet cable
> >>> 9. e100e goes into D3
> >>> 10. Plug in ethernet cable
> >>> 11. Both e1000e and xHCI wake up.
> >> 
> >> I think xHCI waking from D3 when e1000e wakes from D3 is because they 
> >> share the same GPE (0xd). Instrumenting PME polling shows that PME is 
> >> enabled, but PME status is never set on the xHCI when a USB device is 
> >> plugged in.
> >> 
> >> What can mask PME from firing when it's enabled on the device?
> > 
> > Intel had a issue with ACPI tables being incorrect in some Ivy Bridge
> > systems.  This led to the kernel ignoring PMEs from the xHCI host
> > controller because it didn't know the PME was associated with the xHCI
> > PCI device.  That ACPI table fix was supposed to make it into the Intel
> > reference BIOS.  Have you tried updating your BIOS?
> 
> Was running last months. Updated today. Still happens.
> 
> > 
> > However, the kernel was patched to wake up all PCI devices under the PCI
> > bridge that reported a spurious PME, so you shouldn't even need the BIOS
> > update.  See commit 379021d5c0899fcf9410cae4ca7a59a5a94ca769 "PCI / PM:
> > Extend PME polling to all PCI devices".
> 
> I've looked at the that code. I instrumented it to verify that PME was 
> enabled and PME status was never set.

Ok.  Maybe the port change bits weren't cleared before the host was
placed into D3 after suspend.  Can you turn on CONFIG_USB_DEBUG and
CONFIG_USB_XHCI_HCD_DEBUGGING, and capture the log messages from the
time you suspend the system to when you resume and the xHCI host goes
into D3?

Sarah Sharp

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.