blob: e09d07669c93138dd3864f575e18a0c00bb124ed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
diff --git a/pm/pm-functions.in b/pm/pm-functions.in
--- a/pm/pm-functions.in
+++ b/pm/pm-functions.in
@@ -316,8 +316,28 @@ if [ -z "$HIBERNATE_MODULE" ] && \
{
[ -n "${HIBERNATE_MODE}" ] && \
grep -qw "${HIBERNATE_MODE}" /sys/power/disk && \
+ HIBERNATE_MODE_SAVE=$(cat /sys/power/disk) && \
+ HIBERNATE_MODE_SAVE="${HIBERNATE_MODE_SAVE##*[}" && \
+ HIBERNATE_MODE_SAVE="${HIBERNATE_MODE_SAVE%%]*}" && \
echo -n "${HIBERNATE_MODE}" > /sys/power/disk
echo -n "disk" > /sys/power/state
+ RET=$?
+ echo -n "$HIBERNATE_MODE_SAVE" > /sys/power/disk
+ return "$RET"
+ }
+fi
+
+# for kernels that support suspend to both (i.e. hybrid suspend)
+# since kernel 3.6
+if [ -z "$SUSPEND_HYBRID_MODULE" ] && \
+ [ -f /sys/power/disk ] && \
+ grep -q disk /sys/power/state && \
+ grep -q suspend /sys/power/disk; then
+ SUSPEND_HYBRID_MODULE="kernel"
+ do_suspend_hybrid()
+ {
+ HIBERNATE_MODE="suspend"
+ do_hibernate
}
fi
|