I'll have a dig around if you're still having troubles and see if I can remember what I was using but it was probably 'xset -dpms'. I never had suspend troubles, what machine are you using (I've got a 750)?
860. Using apm's true "Suspend" mode (rather than what the Z calls suspend, which is "Off" as far as the kernel apm code is concerned) has worked fine overnight, but I don't know at what additional power drain (since I left it plugged in). An additional "cardctl suspend" is needed to shut down the wifi in this case. It does have the advantage of being able to leave a terminal open to the Z on another machine, since it's not seen as a dead connection the way it is when the Z is "off" (if the wifi is left on, of course).
I'm also not sure that it's the clock which is wrong, but rather the matchbox clock applet which doesn't bother to update itself (again this was all a long time ago so I may well be completely wrong).
The clock itself is wrong (although the matchbox clock can lag after adjusting it), which may be related to hwclock working sometimes but not others. From outside X, if I invoke this script
#! /bin/bash
hwclock --systohc
more /proc/sys/pm/suspend
hwclock --hctosys
when it works at all it saves the system clock to the hardware clock, then suspends, then when I bring the system back up sets the system clock from the hardware clock. But a fair amount of the time that first hwclock command just hangs, in which case it comes back up with a retarded time. This seems to be a known issue that I gather will be fixed in the next ROM.
Hassle having to suspend after exiting X ("more /proc/sys/pm/suspend" will do that), since can't leave anything open of course on the desktop.
Does that work? With GPE (on my 5500, X11 on top of OZ) if I do that it switches off, but will only come back on for about a second than switches off again - not ideal ;-).
Works fine for me, although once in a while it does come up and manage to re-enter that command, so has to be brought up a second time. This is from outside X though. The variant of "echo 1 > /proc/sys/pm/suspend" does the same thing - anything that touches that file suspends the system.