Suspend works perfectly for me on my Lenovo X220 and Slackware Linux version 13.37. One thing that I was always irritated about was having to restart bluetooth after suspend.
I had to add a hook in
/etc/pm/sleep.d to make this come alive on its own after a resume. All the files here are executed after a resume and they have to be marked executable. Here's the contents of mine: