Fixed! Solution found here.
Step 1: Create a file at /etc/pm/sleep.d/20_custom-ehci_hcd, with the following code:
Step 2: Make this file executable with this command:
#inspired by http://art.ubuntuforums.org/showpost.php?p=9744970&postcount=19
# tidied by tqzzaa :)
DRIVERS="ehci xhci" # ehci_hcd, xhci_hcd
echo -n > $DEV_LIST 2>/dev/null
for driver in $DRIVERS; do
for dev in `ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"`; do
echo -n "$dev" > $DDIR/unbind
echo "$driver $dev" >> $DEV_LIST
if [ -s $DEV_LIST ]; then
while read driver dev; do
while [ $((MAX_BIND_ATTEMPTS)) -gt 0 ]; do
echo -n "$dev" > $DDIR/bind
if [ ! -L "$DDIR/$dev" ]; then
done < $DEV_LIST
rm $DEV_LIST 2>/dev/null
case "$1" in
Step 3: Enjoy. The screen still flickers, but the laptop goes into proper sleep.
sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
You'll also need to do the keyboard/touchpad fix provided at the same site. That seems to also fix the automatic reboot on power off bug. Otherwise, you'll run into the problem of the computer restarting after you put it to sleep and the keyboard not working so that you can't put enter your password and the only solution is to reboot and lose your session.