There is a (rather tedious) workaround that seems to reliably work to suspend/resume my Aspire One 522 with fglrx (12.4) and the default (3.2.0) ubuntu 12.04 kernel.
Actually, it seems that only the *first* resume does not perfectly restore the X display. At least when using 'quirk-vbestate-restore', text consoles are properly restored and the further resumes are also able to restore the X display. To work around this:
1. Edit "/usr/lib/pm-utils/sleep.d/98video-quirk-db-handler" and, at line 371, replace '--quirk-none' by '--quirk-vbestate-restore'. This is to cause pm-suspend to use this quirk by default whenever fglrx is detected and only has to be done once.
2. Go to a text console with <Alt><F1> and login.
3. Enter the command "sudo pm-suspend". The machine should enter the suspend state.
4. Press a key to wake the machine up. Wait a few seconds till the process is complete. Do *not* try to return to X with <Alt><F7> at this point or the machine will hang. All the text consoles can be used, however.
5. Enter the command "sudo pm-suspend" once more and wait till the machine is suspended.
6. When you resume the machine again, you should be able to switch back to the X display and do the next suspend/resume cycles from there (by simply closing the lid). Steps 2 to 5 have to be done after every reboot.
All these manual steps are tedious and I do not see how it could be automated, but for those that seldom / never reboot their machines (like me with a proper suspend!), it might be a viable solution for now.
There is a (rather tedious) workaround that seems to reliably work to suspend/resume my Aspire One 522 with fglrx (12.4) and the default (3.2.0) ubuntu 12.04 kernel.
Actually, it seems that only the *first* resume does not perfectly restore the X display. At least when using 'quirk- vbestate- restore' , text consoles are properly restored and the further resumes are also able to restore the X display. To work around this:
1. Edit "/usr/lib/ pm-utils/ sleep.d/ 98video- quirk-db- handler" and, at line 371, replace '--quirk-none' by '--quirk- vbestate- restore' . This is to cause pm-suspend to use this quirk by default whenever fglrx is detected and only has to be done once.
2. Go to a text console with <Alt><F1> and login.
3. Enter the command "sudo pm-suspend". The machine should enter the suspend state.
4. Press a key to wake the machine up. Wait a few seconds till the process is complete. Do *not* try to return to X with <Alt><F7> at this point or the machine will hang. All the text consoles can be used, however.
5. Enter the command "sudo pm-suspend" once more and wait till the machine is suspended.
6. When you resume the machine again, you should be able to switch back to the X display and do the next suspend/resume cycles from there (by simply closing the lid). Steps 2 to 5 have to be done after every reboot.
All these manual steps are tedious and I do not see how it could be automated, but for those that seldom / never reboot their machines (like me with a proper suspend!), it might be a viable solution for now.