This is a solution I found that I'm posting so others could benefit from it.

I have a AMD-970 chipset motherboard with usb 3.0 external hard drive attached.

I don't remember when it started happening, but for some reason a few months ago, the system will not suspend properly: The usb 3.0 drive turns off and the system seems to sleep, but the system except the usb 3.0 drive wakes up right away. I ignored it all this time since I could just shutdown and restart, but I decided to tackle it once and for all.

First the error log:
Code:
Jul  8 08:43:43 localhost kernel: xhci_hcd 0000:02:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x000f address=0x0000000000000000 flags=0x0000]
Jul  8 08:43:43 localhost kernel: xhci_hcd 0000:02:00.0: WARN: xHC save state timeout
Jul  8 08:43:43 localhost kernel: suspend_common(): xhci_pci_suspend+0x0/0xc0 returns -110
Jul  8 08:43:43 localhost kernel: pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -110
Jul  8 08:43:43 localhost kernel: dpm_run_callback(): pci_pm_suspend+0x0/0x130 returns -110
Jul  8 08:43:43 localhost kernel: PM: Device 0000:02:00.0 failed to suspend async: error -110
After searching the Internet, I found that the issue had to do with usb 3.0 suspend and AMD 970 chipset, which needed the following kernel boot options:
Code:
amd_iommu=on iommu=pt
Now I don't have to wear the PC down with multiple shutdown and restart, not to mention waiting during restart.