A Presentation by Matthew Garrett
Suspend to RAM is now a mostly solved problem under Linux. Resuming, however, is less so. Many drivers fail to support suspend and resume correctly, resulting in a range of failures from the individual device not working to the entire machine crashing. The most common workaround is to unload drivers on suspend and reload them on resume, but this reduces the incentive to fix the bugs while increasing the time taken to complete the suspend/resume process. This presentation will cover what a driver needs to do in order to work over a suspend/resume cycle, discussing the most common failures in drivers. A basic working knowledge of C is assumed, as is the ability to compile a kernel, but no deep understanding of the kernel source tree is required.