summaryrefslogtreecommitdiffstats
path: root/source/ap/pm-utils/patches/add-in-kernel-suspend-to-both.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/pm-utils/patches/add-in-kernel-suspend-to-both.patch')
-rw-r--r--source/ap/pm-utils/patches/add-in-kernel-suspend-to-both.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/source/ap/pm-utils/patches/add-in-kernel-suspend-to-both.patch b/source/ap/pm-utils/patches/add-in-kernel-suspend-to-both.patch
new file mode 100644
index 000000000..e09d07669
--- /dev/null
+++ b/source/ap/pm-utils/patches/add-in-kernel-suspend-to-both.patch
@@ -0,0 +1,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
+