#!/bin/bash
EICON_FIRM="etsi"
case "$PROTOCOL" in
    1tr6)   EICON_FIRM="1tr6" ;;
    euro)   EICON_FIRM="etsi" ;;
    leased) EICON_FIRM="etsi -p" ;;
    ni1)    EICON_FIRM="ni1" ;;
    *)      EICON_FIRM="etsi" ;;
esac
EICON_OPT=""
EICON_CNT=1
case "PARA_SUBTYPE" in
    0|1|2|3|5|7)    ;;
    6)              EICON_CNT=4 ;;
    4|8)            EICON_OPT="-s2 -n" ;;
    *)              ;;
esac
EICON_CNR=${EICON_CNR:=0}
if [ -z $EICON_LOADED ] ; then
    EICON_LOADED="yes"
    if [ $PARA_SUBTYPE -le 4 ] ; then
	EICON_PAR="irq=$PARA_IRQ membase=$PARA_MEMBASE"
    fi
    /sbin/modprobe eicon $EICON_PAR id=${ID}
    RET=$?
else
    $SBIN/eiconctrl add $ID $MEMBASE $IRQ
    RET=$?
fi
if [ $RET -eq 0 ] ; then
    rc_failed $RET
    rc_status -v
    echo -n "Loading firmware $EICON_FIRM to $ID"
    $SBIN/eiconctrl -d ${ID}${EICON_CNR} load $EICON_FIRM $EICON_OPT >& /dev/null
    RET=$?
    if [ $RET -eq 0 ] ; then
	if [ -n "$EAZMAP" ]; then
	    I4L_EAZMAP_$CONTR="${ID}${EICON_CNR} ${EAZMAP}"
	    I4L_EAZMAP_IDX="$I4L_EAZMAP_IDX $CONTR"
	fi
	if [ $EICON_CNT -eq 4 ]; then
	    if [ -n "$EAZMAP_1" ]; then
		I4L_EAZMAP_${CONTR}_1="${ID}${EICON_CNR} ${EAZMAP_1}"
		I4L_EAZMAP_IDX="$I4L_EAZMAP_IDX ${CONTR}_1"
	    fi
	    if [ -n "$EAZMAP_2" ]; then
		I4L_EAZMAP_${CONTR}_2="${ID}$(($EICON_CNR + 1)) ${EAZMAP_2}"
		I4L_EAZMAP_IDX="$I4L_EAZMAP_IDX ${CONTR}_2"
	    fi
	    if [ -n "$EAZMAP_3" ]; then
		I4L_EAZMAP_${CONTR}_3="${ID}$(($EICON_CNR + 2)) ${EAZMAP_3}"
		I4L_EAZMAP_IDX="$I4L_EAZMAP_IDX ${CONTR}_3"
	    fi
	    if [ -n "$EAZMAP_4" ]; then
		I4L_EAZMAP_${CONTR}_4="${ID}$(($EICON_CNR + 3)) ${EAZMAP_4}"
		I4L_EAZMAP_IDX="$I4L_EAZMAP_IDX ${CONTR}_4"
	    fi
	fi
    fi
    EICON_CNR=$(($EICON_CNR + $EICON_CNT))
fi
test $RET -eq 0 && CONTR_CNT=$(($CONTR_CNT + $EICON_CNT))
