On Mon, Mar 19, 2018 at 6:36 AM, Rafael J. Wysocki <rafael@xxxxxxxxxx> wrote: > On Fri, Mar 16, 2018 at 10:06 AM, Mathias Nyman > <mathias.nyman@xxxxxxxxxxxxxxx> wrote: >> Adding Rafael directly to CC >> >> In short, if _S3D and _S3W are missing in DSDT then a PCI device >> stays in D0 during suspend in Linux, but goes to D3 in Windows. >> >> USB wake doesn't work in Geminilake because of this. >> >> Should this be changed? reasoning below. > > It can be changed if that doesn't cause problems to happen. I double checked that Windows 10 is going into S3 suspend and that USB wakeup works fine on this platform - it works fine there. Device manager for the XHCI controller clearly shows D3 being used for S3 suspend: https://imgur.com/lF9U3V0 Current power state: D0 Power capabilities: 00000089 PDCAP_D0_SUPPORTED PDCAP_D3_SUPPORTED PDCAP_WAKE_FROM_D3_SUPPORTED Power state mappings: S0 -> D0 S1 -> Unspecified S2 -> Unspecified S3 -> D3 S4 -> D3 S5 -> D3 The biggest risk of my proposed change is that we would now end up putting a wakeup-enabled device into a too low power state where it can no longer wake up the system. On the other hand, it solves this issue affecting 2 different vendors, and may even result in some power savings in general. Perhaps we can consider the change for inclusion in Linux-4.17, giving 2-3 months of testing time. I'll submit the patch shortly. Thanks Daniel -- 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