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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html