You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
938 B
32 lines
938 B
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 |
|
|
|
|