Re: USB hot-plug not working (ASUS TP301UA-C4028T)

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

 



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux