I have a Lenovo Thinkpad W510, and the following works flawlessly for
me:

1)  As root/sudo, create /etc/pm/sleep.d/20_custom-xhci_hcd with the
following contents:

#!/bin/sh
# File: "/etc/pm/sleep.d/20_custom-xhci_hcd".
TMPLIST=/tmp/xhci-dev-list

case "${1}" in
        hibernate|suspend)
    echo -n '' > $TMPLIST
          for i in `ls /sys/bus/pci/drivers/xhci_hcd/ | egrep 
'[0-9a-z]+\:[0-9a-z]+\:.*$'`; do
              # Unbind xhci_hcd for first device XXXX:XX:XX.X:
               echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/unbind
           echo "$i" >> $TMPLIST
          done
        ;;
        resume|thaw)
    for i in `cat $TMPLIST`; do
              # Bind xhci_hcd for first device XXXX:XX:XX.X:
              echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/bind
    done
    rm $TMPLIST
        ;;
esac

2) sudo chmod 755 /etc/pm/sleep.d/20_custom-xhci_hcd

I didn't need to create the /etc/pm/sleep.d/05_xhci file as suggested by
@Gabou, nor did I need to do anything with /etc/modprobe.d/blacklist-
xhci_hcd.conf or /etc/pm/config.d/unload_module, as suggested by
@Martin.  In fact, these three files don't exist on my machine.

For other laptops that have ehci_hcd devices which cause suspend
problems, I think this script will work by simply replacing xhci_hcd
with ehci_hcd, although this isn't directly relevant to this bug report.

This works even with two usb devices plugged into the ports when I
suspend and then resume -- the devices work and don't need to be plugged
in or out.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/522998

Title:
  XHCI (USB 3.0) kernel Module Prevents Suspend

To manage notifications about this bug go to:
https://bugs.launchpad.net/linux/+bug/522998/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to