Merge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/linville...
[sfrench/cifs-2.6.git] / Documentation / power / drivers-testing.txt
1 Testing suspend and resume support in device drivers
2         (C) 2007 Rafael J. Wysocki <rjw@sisk.pl>, GPL
3
4 1. Preparing the test system
5
6 Unfortunately, to effectively test the support for the system-wide suspend and
7 resume transitions in a driver, it is necessary to suspend and resume a fully
8 functional system with this driver loaded.  Moreover, that should be done
9 several times, preferably several times in a row, and separately for the suspend
10 to disk (STD) and the suspend to RAM (STR) transitions, because each of these
11 cases involves different ordering of operations and different interactions with
12 the machine's BIOS.
13
14 Of course, for this purpose the test system has to be known to suspend and
15 resume without the driver being tested.  Thus, if possible, you should first
16 resolve all suspend/resume-related problems in the test system before you start
17 testing the new driver.  Please see Documents/power/basic-pm-debugging.txt for
18 more information about the debugging of suspend/resume functionality.
19
20 2. Testing the driver
21
22 Once you have resolved the suspend/resume-related problems with your test system
23 without the new driver, you are ready to test it:
24
25 a) Build the driver as a module, load it and try the STD in the test mode (see:
26 Documents/power/basic-pm-debugging.txt, 1a)).
27
28 b) Load the driver and attempt to suspend to disk in the "reboot", "shutdown"
29 and "platform" modes (see: Documents/power/basic-pm-debugging.txt, 1).
30
31 c) Compile the driver directly into the kernel and try the STD in the test mode.
32
33 d) Attempt to suspend to disk with the driver compiled directly into the kernel
34 in the "reboot", "shutdown" and "platform" modes.
35
36 e) Attempt to suspend to RAM using the s2ram tool with the driver loaded (see:
37 Documents/power/basic-pm-debugging.txt, 2).  As far as the STR tests are
38 concerned, it should not matter whether or not the driver is built as a module.
39
40 Each of the above tests should be repeated several times and the STD tests
41 should be mixed with the STR tests.  If any of them fails, the driver cannot be
42 regarded as suspend/resume-safe.