#!/bin/sh
#
# bluetooth_serial
#
# Bluetooth serial PCMCIA card initialization
#

start_serial()
{
	if [ ! -x /bin/setserial -o ! -x /usr/sbin/hciattach ]; then
		logger "$0: setserial or hciattach not executable, cannot start $DEVNAME"
		return 1
	fi

	IRQ=`/bin/setserial $DEVNAME | sed -e 's/.*IRQ: //'`
	/bin/setserial $DEVNAME irq 0 ; /bin/setserial $DEVNAME irq $IRQ

	MANF_CARD_ID="${MANF_ID},${CARD_ID}"
	# I don't have a generic solution, sorry
	if [ $MANF_CARD_ID = "0x0160,0x0002" ]; then
		/usr/sbin/hciattach $DEVNAME $MANF_CARD_ID 115200
	else
		/usr/sbin/hciattach $DEVNAME $MANF_CARD_ID
	fi
}

stop_serial()
{
	[ -x /bin/fuser ] || return 1 

	/bin/fuser -k -HUP $DEVNAME > /dev/null
}

case "$ACTION" in
   add)
	start_serial
	;;
   remove)
	stop_serial
	;;
   *)
	logger "Unknown action received $0: $ACTION"
	;;
esac
