#
# Copyright (C) 2009 OpenWrt.org
#

restore_demaged_wificfg() {
	local wifi2gCfg="/etc/wireless/mediatek/mt7981.dbdc.b0.dat"
	local wifi5gCfg="/etc/wireless/mediatek/mt7981.dbdc.b1.dat"
	local wifi2gbakCfg="/etc/wireless/bkcfg/mt7981.dbdc.b0.dat"
	local wifi5gbakCfg="/etc/wireless/bkcfg/mt7981.dbdc.b1.dat"
	local wifi2gromdatCfg="/rom/etc/wireless/mediatek/mt7981.dbdc.b0.dat"
	local wifi5gromdatCfg="/rom/etc/wireless/mediatek/mt7981.dbdc.b1.dat"
	local wifiCfg="/etc/wireless/mediatek/"
	if [ -s "$wifi2gCfg" ]; then
		echo "wifi2gCfg file exists and is not empty!!!"
	else
		echo "wifi2gCfg file does not exist or is empty!!!"
		if [ -f "$wifi2gbakCfg" ]; then
			echo "cp $wifi2gbakCfg to $wifiCfg"
			cp -f "$wifi2gbakCfg" "$wifiCfg"
			rm "$wifi2gbakCfg"
		else
			cp -f "$wifi2gromdatCfg" "$wifiCfg"
			echo "cp $wifi2gromdatCfg to $wifiCfg"
		fi
	fi

	if [ -s "$wifi5gCfg" ]; then
		echo "wifi5gCfg file exists and is not empty!!!"
	else
		echo "wifi5gCfg file does not exist or is empty!!!"
		if [ -f "$wifi5gbakCfg" ]; then
			echo "cp $wifi5gbakCfg to $wifiCfg"
			cp -f "$wifi5gbakCfg" "$wifiCfg"
			rm "$wifi5gbakCfg"
		else
			cp -f "$wifi5gromdatCfg" "$wifiCfg"
			echo "cp $wifi5gromdatCfg to $wifiCfg"
		fi
	fi
	#临时修改
	echo "set apcli_defaultKeyID=1"
	uci set wireless.apcli_2g.apcli_defaultKeyID='1'
	uci set wireless.apcli_5g.apcli_defaultKeyID='1'
}

otp_init() {
	local radio2g=`uci get wireless.@wifi-iface[0].radio`
	local radio5g=`uci get wireless.@wifi-iface[1].radio`

	if [ $radio2g -eq 1 ]; then
		sleep 50 && iwpriv ra0 set thermal_protect_duty_cfg=0:0:100 & 
		sleep 50 && iwpriv ra0 set thermal_protect_duty_cfg=0:1:85 &
		sleep 50 && iwpriv ra0 set thermal_protect_duty_cfg=0:2:70 &
		sleep 50 && iwpriv ra0 set thermal_protect_duty_cfg=0:3:60 &
		sleep 50 && iwpriv ra0 set thermal_protect_enable=0:1:1:118:112:0005 &
		# sleep 50 && iwpriv ra0 set thermal_protect_enable=0:2:1:124:000:0005 &
	fi

	if [ $radio5g -eq 1 ]; then
		sleep 50 && iwpriv rax0 set thermal_protect_duty_cfg=1:0:100 &
		sleep 50 && iwpriv rax0 set thermal_protect_duty_cfg=1:1:85 &
		sleep 50 && iwpriv rax0 set thermal_protect_duty_cfg=1:2:70 &
		sleep 50 && iwpriv rax0 set thermal_protect_duty_cfg=1:3:60 &
		sleep 50 && iwpriv rax0 set thermal_protect_enable=1:1:1:118:112:0005 &
		# sleep 50 && iwpriv rax0 set thermal_protect_enable=1:2:1:124:000:0005 &
	fi
}

preinit_wifi_init() {
	echo "preinit_wifi_init"
	restore_demaged_wificfg
	local radio2g=`uci get wireless.@wifi-iface[0].radio`
	local radio5g=`uci get wireless.@wifi-iface[1].radio`
	local factory_mode=`envctl factory get factory_mode`
	local deviceName=`envctl factory get model`
	local region=`uci get wireless.2g.country`
	
	if [ "$factory_mode" == "off" ]; then
		#if [ $radio2g -eq 1 ]; then
		#sleep 50 && iwpriv ra0 set probeReqCnt=11 &
		#fi
		#sleep 50 && iwpriv rax0 set probeReqCnt=11 &
		otp_init
	
		if [ "$deviceName" == "EAX15v3"  ] || [ "$deviceName" == "EAX14v3" ] || [ "$deviceName" == "EAX12v2" ] || [ "$deviceName" == "EAX11v3" ]; then
			if [ "$region" == "US" ] || [ "$region" == "NA" ] || [ "$region" == "CA" ] ; then
				uci set wireless.5g.dfsEnable=0
				uci set wireless.2g.dfsEnable=0
			else
				uci set wireless.5g.dfsEnable=1
				uci set wireless.2g.dfsEnable=1
			fi
		fi
		if [ "$region" == "WW" ] || [ "$region" == "EU" ]; then
				uci set wireless.5g.dfsEnable=1
				uci set wireless.2g.dfsEnable=1
		fi
	fi
	uci commit wireless
	sleep 2
	uci2dat
	sync
	echo "uci2dat：Sync wifi dat files"
}

boot_hook_add preinit_main preinit_wifi_init
