Hi Mathias, Just to know: does that mean the firmware from Asus is faulty in here? Do you think I should contact Asus about this?
Cheers, Pierre. Le lundi 3 octobre 2016, 15:09:03 NZDT Mathias Nyman a écrit : > On 03.10.2016 13:09, Mathias Nyman wrote: > > I'm writing a workaround that will disable runtime PM for the xhci > > controller In case we are about to put (keep) it in D0 without PME# wake > > support. > > > > I also learned the lspci -vv might wake up the controller from D3cold so > > it's also possible that PME# is failing in D3Cold. > > > > Could you do two more things to verify the D state so that I fix the right > > issue: > > > > 1. check the D state from sysfs, on-battery, in state where usb devices > > are not detected: cat > > /sys/bus/pci/devices/0000\:00\:14.0/firmware_node/power_state > > > > 2. send the DSDT table of your machine, it includes the ACPI methods that > > dictate the possible D states copy /sys/firmware/acpi/tables/DSDT to a > > file and send it (a link to it, or attachment) to me, It's binary. > Thanks, I got the info off-list, and device is really in D0 and ACPI DSDT > (provided by firmware) is the one enforcing it: > > From DSDT: > > Scope (_SB.PCI0) > { > Device (XHC) > { > ... > Method (_S0W, 0, NotSerialized) // _S0W: S0 Device Wake State > { > If (LEqual (XFLT, Zero)) > { > Return (Zero) > } > Else > { > Return (Zero) > } > } > > > _S0W will return the deepest allowed runtime suspend D state, always zero in > this case. > > Normally if driver has all the needed quirks in place then XFLT == 3 (As > linux xhci-hcd does) then _S0W usually returns "3". But with this firmware > _S0W always returns zero. checking XFLT is useless. > > Anyways, I'll write a workaround for this case in xhci, disabling runtime PM > if lowest runtime sleep state (highest D state) is D0 and PME# is disabled > in D0. > > -Mathias -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html