#!/bin/sh

# If QCA6234 softmac.bin and/or ark3bdaddr.pst files don't exist, create them
# using MAC IDs that were burnt into eFuses during gateway manufacture.
# Then load ath6kl_sdio.ko module. 

get_fuse () {
    local name=$1
    local bytes=$2
    # read the fuse and pad the left with zeros to the size of $pad
    local fuse=$(cat /sys/fsl_otp/$name | cut -b 3-)
    echo ${fuse}
}

get_mac () {
    local upper_fuse=$1
    local upper_mac=$(get_fuse HW_OCOTP_GP$upper_fuse)
    local lower_mac=$(get_fuse HW_OCOTP_GP$(( $upper_fuse - 1 )))
    echo $upper_mac$lower_mac
}

if [ ! -f /lib/firmware/ath6k/AR6004/hw3.0/softmac.bin ] ; then
    #QCA6234 WiFi softmac file not present, so create it 
	echo -ne $(echo $(get_mac 31) | sed -e 's/../\\x&/g') > /tmp/hold> /lib/firmware/ath6k/AR6004/hw3.0/softmac.bin
fi
if [ ! -f /lib/firmware/ar3k/1020201/ar3kbdaddr.pst ] ; then
    #QCA6234 Bluetooth ar3kbddar.pst file not present, so create it 
	echo $(get_mac 33) > /lib/firmware/ar3k/1020201/ar3kbdaddr.pst
fi

#install ath6kl driver module
MODVER=$(ls /lib/modules)
insmod /lib/modules/$MODVER/kernel/drivers/net/wireless/ath/ath6kl/ath6kl_sdio.ko

#start bluettooh coexistance user-space daemon
abtfilt -d -a -x -w wlan0 -b -s
