summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Juszkiewicz <hrw@openembedded.org>2006-01-19 19:12:48 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2006-01-19 19:12:48 +0000
commit909321269e98db8a265ef4787e7a002cf4569b3c (patch)
tree9b6a93e68b938aa5594f68d505453d169fa034c1
parentccd085b5c2c92b81daf115fca291e89ba1140073 (diff)
bluez-utils: added workaround for dtl1_cs CF cards
- dtl1_cs driver does not support suspend/resume so after resume we have to eject/insert card to get it working again - close #417
-rw-r--r--packages/bluez/bluez-utils-dbus_2.20.bb2
-rw-r--r--packages/bluez/bluez-utils-dbus_2.21.bb2
-rw-r--r--packages/bluez/bluez-utils-dbus_2.24.bb2
-rw-r--r--packages/bluez/bluez-utils-nodbus_2.20.bb2
-rw-r--r--packages/bluez/bluez-utils-nodbus_2.21.bb2
-rw-r--r--packages/bluez/bluez-utils-nodbus_2.24.bb2
-rw-r--r--packages/bluez/bluez-utils.inc6
-rw-r--r--packages/bluez/files/02dtl1_cs.sh57
8 files changed, 67 insertions, 8 deletions
diff --git a/packages/bluez/bluez-utils-dbus_2.20.bb b/packages/bluez/bluez-utils-dbus_2.20.bb
index 1d7c172332..2aad6eae13 100644
--- a/packages/bluez/bluez-utils-dbus_2.20.bb
+++ b/packages/bluez/bluez-utils-dbus_2.20.bb
@@ -1,6 +1,6 @@
include bluez-utils.inc
-PR = "r10"
+PR = "r11"
DEPENDS += "dbus"
SRC_URI += "file://dbus.patch;patch=1 \
diff --git a/packages/bluez/bluez-utils-dbus_2.21.bb b/packages/bluez/bluez-utils-dbus_2.21.bb
index 8c78d180fa..8db7852c84 100644
--- a/packages/bluez/bluez-utils-dbus_2.21.bb
+++ b/packages/bluez/bluez-utils-dbus_2.21.bb
@@ -1,6 +1,6 @@
include bluez-utils.inc
-PR = "r4"
+PR = "r5"
DEPENDS += "dbus"
SRC_URI += "file://dbus.patch;patch=1 \
diff --git a/packages/bluez/bluez-utils-dbus_2.24.bb b/packages/bluez/bluez-utils-dbus_2.24.bb
index ecda02c629..d8c97d91dc 100644
--- a/packages/bluez/bluez-utils-dbus_2.24.bb
+++ b/packages/bluez/bluez-utils-dbus_2.24.bb
@@ -1,6 +1,6 @@
include bluez-utils.inc
-PR = "r1"
+PR = "r2"
DEPENDS += "dbus"
SRC_URI += "file://dbus.patch;patch=1"
diff --git a/packages/bluez/bluez-utils-nodbus_2.20.bb b/packages/bluez/bluez-utils-nodbus_2.20.bb
index f550939143..006d1258bc 100644
--- a/packages/bluez/bluez-utils-nodbus_2.20.bb
+++ b/packages/bluez/bluez-utils-nodbus_2.20.bb
@@ -1,6 +1,6 @@
include bluez-utils.inc
-PR = "r2"
+PR = "r3"
SRC_URI += "file://hciattach_devlength.patch;patch=1"
EXTRA_OECONF += "--without-dbus"
diff --git a/packages/bluez/bluez-utils-nodbus_2.21.bb b/packages/bluez/bluez-utils-nodbus_2.21.bb
index d7487a0328..49162d55d9 100644
--- a/packages/bluez/bluez-utils-nodbus_2.21.bb
+++ b/packages/bluez/bluez-utils-nodbus_2.21.bb
@@ -1,6 +1,6 @@
include bluez-utils.inc
-PR = "r2"
+PR = "r3"
SRC_URI += "file://hciattach_devlength.patch;patch=1"
EXTRA_OECONF += "--without-dbus"
diff --git a/packages/bluez/bluez-utils-nodbus_2.24.bb b/packages/bluez/bluez-utils-nodbus_2.24.bb
index 774549be3d..7a9e73216a 100644
--- a/packages/bluez/bluez-utils-nodbus_2.24.bb
+++ b/packages/bluez/bluez-utils-nodbus_2.24.bb
@@ -1,5 +1,5 @@
include bluez-utils.inc
-PR = "r1"
+PR = "r2"
EXTRA_OECONF += "--without-dbus"
diff --git a/packages/bluez/bluez-utils.inc b/packages/bluez/bluez-utils.inc
index 5babed48dc..c68df7bd47 100644
--- a/packages/bluez/bluez-utils.inc
+++ b/packages/bluez/bluez-utils.inc
@@ -10,7 +10,8 @@ SRC_URI = "http://bluez.sourceforge.net/download/bluez-utils-${PV}.tar.gz \
file://blueboxes.patch;patch=1 \
file://hcid.conf \
file://bluetooth.default \
- file://bluetooth.conf "
+ file://bluetooth.conf \
+ file://02dtl1_cs.sh"
# Almost all serial CF cards w/ manfid 0x0000,0x0000 seem to use the bcs protocol
# Let's default to that instead of 'any' and see if we break something with that
@@ -32,7 +33,7 @@ do_compile_prepend() {
}
do_install_append() {
- install -d ${D}${base_sbindir} ${D}${base_bindir}/
+ install -d ${D}${base_sbindir} ${D}${base_bindir}/ ${D}${sysconfdir}/apm/event.d/
mv ${D}${sbindir}/* ${D}${base_sbindir}/
mv ${D}${bindir}/* ${D}${base_bindir}/
rmdir ${D}${bindir} ${D}${sbindir}
@@ -41,6 +42,7 @@ do_install_append() {
install -m 0644 ${WORKDIR}/hcid.conf ${D}${sysconfdir}/bluetooth/
install -m 0644 ${WORKDIR}/bluetooth.default ${D}${sysconfdir}/default/bluetooth
cat ${WORKDIR}/bluetooth.conf >> ${D}${sysconfdir}/pcmcia/bluetooth.conf
+ install -m 0755 ${WORKDIR}/02dtl1_cs.sh ${D}${sysconfdir}/apm/event.d/
}
CONFFILES_${PN} = "${sysconfdir}/bluetooth/hcid.conf ${sysconfdir}/bluetooth/rfcomm.conf \
diff --git a/packages/bluez/files/02dtl1_cs.sh b/packages/bluez/files/02dtl1_cs.sh
new file mode 100644
index 0000000000..fefc72e07a
--- /dev/null
+++ b/packages/bluez/files/02dtl1_cs.sh
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+case "$1" in
+ suspend)
+ if [ "`/sbin/hciconfig`" != "" ]; then
+ #If hciconfig outputs anything then there's probably a Bluetooth
+ # CF card in the slot so shut it down.
+ hcitool dc `hcitool con | grep ACL | sed 's/^.*\([0-9A-F]\{2\}\(:[0-9A-F]\{2\}\)\{5\}\).*$/\1/'`
+ hciconfig hci0 down
+ killall hciattach > /dev/null 2>&1
+ fi
+ ;;
+
+ resume)
+ #check for kernel version
+ if [ "`uname -r | grep 2.4.`" != "" ]; then
+ k="o"
+ elif [ "`uname -r | grep 2.6.`" != "" ]; then
+ k="ko"
+ else
+ exit 0
+ fi
+
+ if test -e /sbin/cardctl; then
+ CARDCTL=/sbin/cardctl
+ elif test -e /sbin/pccardctl; then
+ CARDCTL=/sbin/pccardctl
+ else
+ exit 0
+ fi
+
+ if [ "`lsmod | grep hci_uart`" != "" ]; then
+ #If the hci_usb module is still loaded then there's a serial based
+ # Bluetooth CF card in the slot, which only needs a resume to get it going
+ # again.
+ rfcomm bind all
+ $CARDCTL resume
+ hciconfig hci0 up
+ else
+ # only works for nokia dtl1 cards
+ for f in /lib/modules/`uname -r`/kernel/drivers/bluetooth/dtl1_cs.$k
+ do
+ #Enumerate all the self-contained Bluetooth CF card drivers
+ f=`echo $f | sed 's/\.'$k'$//'`
+ f=`basename $f`
+ if [ "`lsmod | grep $f`" != "" ]; then
+ #If one of these drivers is still loaded, then there is probably
+ #a non-serial based Bluetooth CF card in the slot that needs
+ #ejecting and reinserting to get it going again
+ rfcomm bind all
+ $CARDCTL eject
+ $CARDCTL insert
+ hciconfig hci0 up
+ fi
+ done
+ fi
+esac