diff options
author | Marcin Juszkiewicz <hrw@openembedded.org> | 2006-01-19 19:12:48 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2006-01-19 19:12:48 +0000 |
commit | 909321269e98db8a265ef4787e7a002cf4569b3c (patch) | |
tree | 9b6a93e68b938aa5594f68d505453d169fa034c1 | |
parent | ccd085b5c2c92b81daf115fca291e89ba1140073 (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.bb | 2 | ||||
-rw-r--r-- | packages/bluez/bluez-utils-dbus_2.21.bb | 2 | ||||
-rw-r--r-- | packages/bluez/bluez-utils-dbus_2.24.bb | 2 | ||||
-rw-r--r-- | packages/bluez/bluez-utils-nodbus_2.20.bb | 2 | ||||
-rw-r--r-- | packages/bluez/bluez-utils-nodbus_2.21.bb | 2 | ||||
-rw-r--r-- | packages/bluez/bluez-utils-nodbus_2.24.bb | 2 | ||||
-rw-r--r-- | packages/bluez/bluez-utils.inc | 6 | ||||
-rw-r--r-- | packages/bluez/files/02dtl1_cs.sh | 57 |
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 |