#
# Copyright (C) 2009 OpenWrt.org
#

restore_demaged_wificfg() {
	local wifi2gCfg="/etc/wireless/mediatek/mt7986-ax4200.dbdc.b0.dat"
	local wifi5gCfg="/etc/wireless/mediatek/mt7986-ax4200.dbdc.b1.dat"
	local wifi2gbakCfg="/etc/wireless/bkcfg/mt7986-ax4200.dbdc.b0.dat"
	local wifi5gbakCfg="/etc/wireless/bkcfg/mt7986-ax4200.dbdc.b1.dat"
	local wifiCfg="/etc/wireless/mediatek/"
	echo "=====> restore_demaged_wificfg <=====" > /dev/console

	if [ -s "$wifi2gCfg" ]; then
		echo "wifi2gCfg file exists and is not empty!!!" > /dev/console
	else
		echo "wifi2gCfg file does not exist or is empty!!!" > /dev/console
		if [ -f "$wifi2gbakCfg" ]; then
			echo "cp $wifi2gbakCfg to $wifiCfg" > /dev/console
			cp -f "$wifi2gbakCfg" "$wifiCfg"
			rm "$wifi2gbakCfg"
		fi
	fi

	if [ -s "$wifi5gCfg" ]; then
		echo "wifi5gCfg file exists and is not empty!!!" > /dev/console
	else
		echo "wifi5gCfg file does not exist or is empty!!!" > /dev/console
		if [ -f "$wifi5gbakCfg" ]; then
			echo "cp $wifi5gbakCfg to $wifiCfg" > /dev/console
			cp -f "$wifi5gbakCfg" "$wifiCfg"
			rm "$wifi5gbakCfg"
		fi
	fi
}

otp_init() {
	echo "---- otp_init ----" > /dev/console
	local radio2g=`uci get wireless.@wifi-iface[0].radio`
	local radio5g=`uci get wireless.@wifi-iface[1].radio`

	if [ $radio2g -eq 1 ]; then
		echo "set ra0 otp --------" > /dev/console
		sleep 50 && iwpriv ra0 set thermal_protect_duty_cfg=0:0:100 & 
		sleep 50 && iwpriv ra0 set thermal_protect_duty_cfg=0:1:80 &
		sleep 50 && iwpriv ra0 set thermal_protect_duty_cfg=0:2:60 &
		sleep 50 && iwpriv ra0 set thermal_protect_duty_cfg=0:3:50 &
		sleep 50 && iwpriv ra0 set thermal_protect_enable=0:1:1:118:112:0005&
	fi

	if [ $radio5g -eq 1 ]; then
		echo "set rax0 otp --------" > /dev/console
		sleep 50 && iwpriv rax0 set thermal_protect_duty_cfg=1:0:100 &
		sleep 50 && iwpriv rax0 set thermal_protect_duty_cfg=1:1:80 &
		sleep 50 && iwpriv rax0 set thermal_protect_duty_cfg=1:2:60 &
		sleep 50 && iwpriv rax0 set thermal_protect_duty_cfg=1:3:50 &
		sleep 50 && iwpriv rax0 set thermal_protect_enable=1:1:1:118:112:0005 &
	fi
}

preinit_wifi_init() {
	echo "todo"
	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`
	echo "---factory_mode[$factory_mode]" > /dev/console
	if [ "$factory_mode" == "off" ]; then
		echo "--- not factory_mode,set otp"
		if [ $radio2g -eq 1 ]; then
			sleep 50 && iwpriv ra0 set probeReqCnt=11 &
		fi
		sleep 50 && iwpriv rax0 set probeReqCnt=11 &
		otp_init
	else
		echo "---factory_mode"
	fi
}

boot_hook_add preinit_main preinit_wifi_init
