#!/bin/sh
#
# bluetooth
#
# PCMCIA Bluetooth device initialization
# Written by Maxim Krasnyanskiy <maxk@qualcomm.com>
#
# This script requires new cardmgr and expects following
# environment variables FUNCTION, VENDORID, CARDNAME
#

if [ -r ./shared ]; then . ./shared ; else . /etc/pcmcia/shared ; fi

# Get device attributes
get_info $DEVICE

#
# Serial devices
#
start_serial() {
    IRQ=`setserial /dev/$DEVICE | sed -e 's/.*IRQ: //'`
    setserial /dev/$DEVICE irq 0 ; setserial /dev/$DEVICE irq $IRQ
 
    /usr/sbin/hciattach $DEVICE $MANFID
}
stop_serial() {
    do_fuser -k -HUP /dev/$DEVICE > /dev/null
}
suspend_serial() {
    stop_serial
}
resume_serial() {
    start_serial
}

start=
stop=
suspend=
resume=
check=
cksum=

case "$FUNCID" in
2)  # Serial
    start=start_serial
    stop=stop_serial
    suspend=suspend_serial
    resume=resume_serial
    ;;
esac

eval \$$ACTION

exit 0
