summaryrefslogtreecommitdiffstats
path: root/pm-utils/pm-utils-13-49bluetooth-sync.patch
diff options
context:
space:
mode:
authortnut <tnut at nutyx dot org>2012-05-03 21:10:08 +0200
committertnut <tnut at nutyx dot org>2012-05-03 21:10:08 +0200
commitda38d2b0170922c01a607a04af092e77ca2d64d1 (patch)
tree81932879a719a11b2e8fab5f9224b09e7fba6c6b /pm-utils/pm-utils-13-49bluetooth-sync.patch
parentcdd472312568aca412d979d2af1e4c0d7105a0a3 (diff)
downloadnutyx-pakxe-da38d2b0170922c01a607a04af092e77ca2d64d1.tar.gz
nutyx-pakxe-da38d2b0170922c01a607a04af092e77ca2d64d1.tar.bz2
nutyx-pakxe-da38d2b0170922c01a607a04af092e77ca2d64d1.tar.xz
nutyx-pakxe-da38d2b0170922c01a607a04af092e77ca2d64d1.zip
ajout pm-utils
Diffstat (limited to 'pm-utils/pm-utils-13-49bluetooth-sync.patch')
-rw-r--r--pm-utils/pm-utils-13-49bluetooth-sync.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/pm-utils/pm-utils-13-49bluetooth-sync.patch b/pm-utils/pm-utils-13-49bluetooth-sync.patch
new file mode 100644
index 000000000..0083ca942
--- /dev/null
+++ b/pm-utils/pm-utils-13-49bluetooth-sync.patch
@@ -0,0 +1,44 @@
+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
+
+