Since Ubuntu 11.10 suspend hasn't worked on my laptop(hasn't wake up). Now I'm on Ubuntu 12.04.02 x86_64 and I had same problem.
And I don't know how but as sleep as hibernation started to work after I did next:
I've added in grub 'noapic' to boot options. Ubuntu loaded and I got it to sleep. It won't start until I pressed about 4 times power button for 3-5 seconds. And it started normally.
Than I got Ubuntu to sleep again. This time it started just after I hit Enter key. Screen showed me(btw, it's ok, my laptop shows it every time)
ata1: softreset failed (device not ready)
ata3: softreset failed (device not ready)
so I understood kernel hooked resume request. But after a second, screen turned off and screen back-light started to blink.
I've pressed Alt + SysRq(Print Screen) + K. So kernel hooked it and restart X. I got a login screen. After login I reboot the laptop with no any extra boot options.
I again got Ubuntu to sleep and it again won't wake up until I press power button several times, but it started normally. After that sleep started to work perfectly even after reboot.
BTW, previously I've moved(means made backup and deleted) all scripts from /etc/pm/sleep.d/.
PS. I understand it's not an acpi problem(as I thought) but some X bug. And I don't understand why it works now. I would be appreciated if someone gives me explanation.