#!/bin/bash

tvl2_load() {
    
    # See if driver is loaded already 
    cat /proc/devices | grep $MODULEPCI 2>&1 >/dev/null 
    RC=$? 
    if [ $RC -ne 0 ] 
    then 

        # Check if driver is installed before attempt 
        if [ -f $MOD_DIR/$MODULEPCI.ko ] 
        then 
            echo "Loading $MODULEPCI driver" 
            OUTPUT=`/sbin/insmod $MOD_DIR/$MODULEPCI.ko 2>&1 >/dev/null` 
            RC=$? 

            if [ $RC -ne 0 ] 
            then 
               echo $OUTPUT | grep "No such device" >/dev/null;RC2=$? 
               if [ $RC2 -eq 0 ] ; then 
                    echo "**>$MODULEPCI no devices found" 
               else 
                   echo "**>$MODULEPCI driver would not load:" 
                   echo $OUTPUT 
               fi 
               exit 1
            fi 
        else 
            if [ -f ${INTEL_DIALOGIC_DIR}/drivers/$MODULEPCI.ko ]
            then
                /sbin/insmod ${INTEL_DIALOGIC_DIR}/drivers/$MODULEPCI.ko
            else
                echo 
                echo "!!! Error: $MODULEPCI.ko is not installed." 
                echo "!!!    Build $MODULEPCI.ko and copy it to /lib/modules/${VERSION}/misc/" 
                echo "!!!    If the /lib/modules/${VERSION}/misc directory does not exist, create it." 
                echo 
                exit 1
            fi
        fi 
    else 
        echo "$MODULEPCI driver is already loaded" 
    fi 

    # If we get here, we have a loaded driver, now make the devices if 
    # the do not exist yet 

    # retrieve major number
    major=$(awk "\$2==\"$MODULEPCI\" {print \$1}" /proc/devices)

    rm -f /dev/$DEVICEPCI
    mknod /dev/$DEVICEPCI c $major 0
    chgrp $group /dev/$DEVICEPCI 
    chmod $MODE  /dev/$DEVICEPCI
    echo "created /dev/$DEVICEPCI"
    
    if [ "${DIALOGIC_PLATFORM}" = "HMP" ] && [ "${DIALOGIC_RELNUM}" = "3.1" ] ||
    	[ "${DIALOGIC_PLATFORM}" = "ZVL" ]
    then
      	# retrieve major number for HSI device
    	majorhsi=$(awk "\$2==\"$MODULEHSI\" {print \$1}" /proc/devices)

    	rm -f /dev/$DEVICEHSI
    	mknod /dev/$DEVICEHSI c $majorhsi 0
    	chgrp $group /dev/$DEVICEHSI 
    	chmod $MODE  /dev/$DEVICEHSI
    	echo "created /dev/$DEVICEHSI"
    fi
}


MODULEPCI="tvl2pcidrv"
DEVICEPCI="tvl2pcidrv"
MODULEHSI="tvl2hsi"
DEVICEHSI="tvl2hsi"
MODE="666"

VERSION=`uname -r`
MOD_DIR=/lib/modules/${VERSION}/misc 
 
# Group: since distributions do it differently, look for wheel or use staff
if grep -q '^staff:' /etc/group; then
    group="staff"
else
    group="wheel"
fi



tvl2_load
