Blame SOURCES/pm-utils-1.4.1-add-in-kernel-suspend-to-both.patch

2f2eab
diff --git a/pm/pm-functions.in b/pm/pm-functions.in
2f2eab
--- a/pm/pm-functions.in
2f2eab
+++ b/pm/pm-functions.in
2f2eab
@@ -316,8 +316,28 @@ if [ -z "$HIBERNATE_MODULE" ] && \
2f2eab
 	{
2f2eab
 		[ -n "${HIBERNATE_MODE}" ] && \
2f2eab
 		grep -qw "${HIBERNATE_MODE}" /sys/power/disk && \
2f2eab
+		HIBERNATE_MODE_SAVE=$(cat /sys/power/disk) && \
2f2eab
+		HIBERNATE_MODE_SAVE="${HIBERNATE_MODE_SAVE##*[}" && \
2f2eab
+		HIBERNATE_MODE_SAVE="${HIBERNATE_MODE_SAVE%%]*}" && \
2f2eab
 		echo -n "${HIBERNATE_MODE}" > /sys/power/disk
2f2eab
 		echo -n "disk" > /sys/power/state
2f2eab
+		RET=$?
2f2eab
+		echo -n "$HIBERNATE_MODE_SAVE" > /sys/power/disk
2f2eab
+		return "$RET"
2f2eab
+	}
2f2eab
+fi
2f2eab
+
2f2eab
+# for kernels that support suspend to both (i.e. hybrid suspend)
2f2eab
+# since kernel 3.6
2f2eab
+if [ -z "$SUSPEND_HYBRID_MODULE" ] && \
2f2eab
+	[ -f /sys/power/disk ] && \
2f2eab
+	grep -q disk /sys/power/state && \
2f2eab
+	grep -q suspend /sys/power/disk; then
2f2eab
+	SUSPEND_HYBRID_MODULE="kernel"
2f2eab
+	do_suspend_hybrid()
2f2eab
+	{
2f2eab
+		HIBERNATE_MODE="suspend"
2f2eab
+		do_hibernate
2f2eab
 	}
2f2eab
 fi
2f2eab