diff options
-rw-r--r-- | abs/core/pm-utils/02-logging-append.patch | 19 | ||||
-rw-r--r-- | abs/core/pm-utils/12-fix-intel-audio-powersave-hook.patch | 40 | ||||
-rw-r--r-- | abs/core/pm-utils/13-49bluetooth-sync.patch | 43 | ||||
-rw-r--r-- | abs/core/pm-utils/14-disable-sata-alpm.patch | 26 | ||||
-rw-r--r-- | abs/core/pm-utils/PKGBUILD | 31 |
5 files changed, 149 insertions, 10 deletions
diff --git a/abs/core/pm-utils/02-logging-append.patch b/abs/core/pm-utils/02-logging-append.patch new file mode 100644 index 0000000..987e057 --- /dev/null +++ b/abs/core/pm-utils/02-logging-append.patch @@ -0,0 +1,19 @@ +Author: James Westby <james.westby@ubuntu.com> +Description: Do not clear the log file on each operation, but instead append to it. + This makes debugging of several suspends much easier. +Bug: https://bugs.freedesktop.org/show_bug.cgi?id=25255 +Bug-Ubuntu: https://launchpad.net/bugs/410352 + +Index: pm-utils/pm/pm-functions.in +=================================================================== +--- pm-utils.orig/pm/pm-functions.in 2010-07-05 18:41:21.118322244 +0200 ++++ pm-utils/pm/pm-functions.in 2010-07-05 18:41:24.126325221 +0200 +@@ -271,7 +271,7 @@ + return 1 + fi + export LOGGING=true +- exec > "$1" 2>&1 ++ exec >> "$1" 2>&1 + } + + check_suspend() { [ -n "$SUSPEND_MODULE" ]; } diff --git a/abs/core/pm-utils/12-fix-intel-audio-powersave-hook.patch b/abs/core/pm-utils/12-fix-intel-audio-powersave-hook.patch new file mode 100644 index 0000000..2d884da --- /dev/null +++ b/abs/core/pm-utils/12-fix-intel-audio-powersave-hook.patch @@ -0,0 +1,40 @@ +From: Florian Kriener <florian@kriener.org> +To: submit@bugs.debian.org +Subject: [pm-utils] wrong path in intel-audio-powersave (and a small bug) +Date: Sat, 25 Sep 2010 11:27:30 +0200 + +In the script intel-audio-powersave is this loop + +for dev in /sys/module/snd_*/parameters/power_save; do + [ -w "$dev/parameters/power_save" ] || continue + printf "Setting power savings for $s to %d..." "$dev##*/" "$1" + echo $1 > "$dev/parameters/power_save" && echo Done. || echo Failed. +done + +I think it should be + +for dev in /sys/module/snd_*; do + [ -w "$dev/parameters/power_save" ] || continue + printf "Setting power savings for %s to %d..." "${dev##*/}" "$1" + echo $1 > "$dev/parameters/power_save" && echo Done. || echo Failed. +done + + +This fixes the two bugs. + +diff --git a/pm/power.d/intel-audio-powersave b/pm/power.d/intel-audio-powersave +index 36675a8..da63e40 100644 +--- a/pm/power.d/intel-audio-powersave ++++ b/pm/power.d/intel-audio-powersave +@@ -20,9 +20,9 @@ EOF + + audio_powersave() { + [ "$INTEL_AUDIO_POWERSAVE" = "true" ] || exit $NA +- for dev in /sys/module/snd_*/parameters/power_save; do ++ for dev in /sys/module/snd_*; do + [ -w "$dev/parameters/power_save" ] || continue +- printf "Setting power savings for $s to %d..." "$dev##*/" "$1" ++ printf "Setting power savings for %s to %d..." "${dev##*/}" "$1" + echo $1 > "$dev/parameters/power_save" && echo Done. || echo Failed. + done + } diff --git a/abs/core/pm-utils/13-49bluetooth-sync.patch b/abs/core/pm-utils/13-49bluetooth-sync.patch new file mode 100644 index 0000000..b41f32c --- /dev/null +++ b/abs/core/pm-utils/13-49bluetooth-sync.patch @@ -0,0 +1,43 @@ +From 640b53438c20818b3e344343b58b1f1765606a85 Mon Sep 17 00:00:00 2001 +From: Martin Pitt <martin.pitt@ubuntu.com> +Date: Mon, 31 Jan 2011 15:30:01 +0100 +Subject: [PATCH] 49bluetooth: Wait for btusb module to get unused + +The 49bluetooth hook disables /proc/acpi/ibm/bluetooth but this isn't +synchronous, i. e. it doesn't wait until the module usage count actually drops +to 0. Due to that, it's impossible to add btusb to SUSPEND_MODULES (on some +models/older kernels you need to do that to fix suspend problems), as at that +point the module is still in use. + +On my system (ThinkPad X201) the module takes between 0.3 and 0.5 seconds to +unload, so use 100 ms wait steps with a timeout of 2 seconds. + +Bug: https://bugs.freedesktop.org//show_bug.cgi?id=33759 +Bug-Ubuntu: https://launchpad.net/bugs/698331 +--- + pm/sleep.d/49bluetooth | 9 +++++++++ + 1 files changed, 9 insertions(+), 0 deletions(-) + +diff --git a/pm/sleep.d/49bluetooth b/pm/sleep.d/49bluetooth +index d46ba49..0dc1909 100755 +--- a/pm/sleep.d/49bluetooth ++++ b/pm/sleep.d/49bluetooth +@@ -12,6 +12,15 @@ suspend_bluetooth() + if grep -q enabled /proc/acpi/ibm/bluetooth; then + savestate ibm_bluetooth enable + echo disable > /proc/acpi/ibm/bluetooth ++ ++ # wait for up to 2 seconds for the module to actually get ++ # unused ++ TIMEOUT=20 ++ while [ $TIMEOUT -ge 0 ]; do ++ [ `cat /sys/module/btusb/refcnt` = 0 ] && break ++ TIMEOUT=$((TIMEOUT-1)) ++ sleep 0.1 ++ done + else + savestate ibm_bluetooth disable + fi +-- +1.7.2.3 + diff --git a/abs/core/pm-utils/14-disable-sata-alpm.patch b/abs/core/pm-utils/14-disable-sata-alpm.patch new file mode 100644 index 0000000..7b54949 --- /dev/null +++ b/abs/core/pm-utils/14-disable-sata-alpm.patch @@ -0,0 +1,26 @@ +Description: Disable SATA link power management by default, as it still causes disk errors and corruptions on many hardware. +Author: Martin Pitt <martin.pitt@ubuntu.com> +Bug-Ubuntu: https://launchpad.net/bugs/539467 + +Index: pm-utils/pm/power.d/sata_alpm +=================================================================== +--- pm-utils.orig/pm/power.d/sata_alpm 2011-02-01 15:53:09.164867778 +0100 ++++ pm-utils/pm/power.d/sata_alpm 2011-02-01 15:53:28.954867786 +0100 +@@ -2,7 +2,7 @@ + + . "${PM_FUNCTIONS}" + +-SATA_ALPM_ENABLE=${SATA_ALPM_ENABLE:-true} ++SATA_ALPM_ENABLE=${SATA_ALPM_ENABLE:-false} + + help() { + cat <<EOF +@@ -16,7 +16,7 @@ + + This hook has 1 parameter: + SATA_ALPM_ENABLE = whether to use SATA ALPM on battery. +-Defaults to "true". ++Defaults to "false". + + EOF + } diff --git a/abs/core/pm-utils/PKGBUILD b/abs/core/pm-utils/PKGBUILD index b0c71c4..6e2aed5 100644 --- a/abs/core/pm-utils/PKGBUILD +++ b/abs/core/pm-utils/PKGBUILD @@ -1,37 +1,48 @@ -# $Id: PKGBUILD 98218 2010-11-04 21:31:12Z ibiru $ +# $Id$ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Thayer Williams <thayer@archlinux.org> # Contributor: Giovanni Scafora <giovanni@archlinux.org> pkgname=pm-utils pkgver=1.4.1 -pkgrel=1 +pkgrel=3 pkgdesc="Utilities and scripts for suspend and hibernate power management" arch=('i686' 'x86_64') url="http://pm-utils.freedesktop.org" license=('GPL') -depends=('bash' 'procps' 'vbetool' 'pm-quirks') -optdepends=('upower') +depends=('bash' 'procps' 'pm-quirks') makedepends=('xmlto' 'docbook-xml' 'docbook-xsl') source=(http://pm-utils.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz +02-logging-append.patch +12-fix-intel-audio-powersave-hook.patch +13-49bluetooth-sync.patch +14-disable-sata-alpm.patch 11netcfg) md5sums=('1742a556089c36c3a89eb1b957da5a60' + 'a45149617bf3eb8dc32e6d9e22ae715d' + 'edada31a7d722763513fbe705d95d19d' + '298f78b873c03c025700d5da619ac134' + 'd0040f7d30b6a0dd195b5401abbbbdb9' '9839687c8787d99fd4ff36aa3238c27b') build() { cd "${srcdir}/${pkgname}-${pkgver}" + patch -Np1 -i "${srcdir}/02-logging-append.patch" + patch -Np1 -i "${srcdir}/12-fix-intel-audio-powersave-hook.patch" + patch -Np1 -i "${srcdir}/13-49bluetooth-sync.patch" + patch -Np1 -i "${srcdir}/14-disable-sata-alpm.patch" ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var - make || return 1 -} -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - - make DESTDIR="${pkgdir}" install || return 1 + make + make DESTDIR="${pkgdir}" install # install additional hooks install -m755 "${srcdir}/11netcfg" "${pkgdir}/usr/lib/pm-utils/sleep.d/" + # nm >=0.8.2 has native udev suspend/resume support rm -f "${pkgdir}/usr/lib/pm-utils/sleep.d/55NetworkManager" + + # Remove hooks that cause hardware failure or don't make sense at all + rm -f "${pkgdir}/usr/lib/pm-utils/power.d/"{harddrive,disable_wol} } |