#!/bin/sh /etc/rc.common
START=10
start() {
	GROUP_KO=ON
	KERVER=`cat /proc/version | awk -F'version ' '{print $2}' | awk -F' ' '{print $1}'`
	echo 3 > /proc/sys/vm/drop_caches
	sleep 1
	free
	insmod /lib/modules/$KERVER/vos/kwrap/kwrap.ko
	insmod /lib/modules/$KERVER/hdal/comm/nvtmem/nvtmem.ko
	insmod /lib/modules/$KERVER/hdal/kdrv_builtin/kdrv_builtin.ko
	insmod /lib/modules/$KERVER/hdal/comm/kdrv_comm.ko
	insmod /lib/modules/$KERVER/hdal/kdrv_gfx2d/kdrv_gfx2d.ko
	insmod /lib/modules/$KERVER/hdal/kdrv_videocapture/kdrv_videocapture.ko
	insmod /lib/modules/$KERVER/hdal/kdrv_videoprocess/kdrv_videoprocess.ko
	insmod /lib/modules/$KERVER/hdal/kdrv_videoprocess/kdrv_vpe/kdrv_vpe.ko
	insmod /lib/modules/$KERVER/hdal/kflow_common/kflow_common.ko
	insmod /lib/modules/$KERVER/hdal/kflow_gfx/videosprite/nvt_videosprite.ko
	insmod /lib/modules/$KERVER/hdal/kflow_videocapture/kflow_videocapture.ko
	insmod /lib/modules/$KERVER/hdal/kflow_videoprocess/kflow_videoprocess.ko
	# kdrv_gfx2d
	insmod /lib/modules/$KERVER/hdal/kdrv_gfx2d/kdrv_affine/affine_neon/kdrv_afn_neon.ko
	insmod /lib/modules/$KERVER/hdal/kdrv_gfx2d/kdrv_affine/kdrv_afn.ko
	insmod /lib/modules/$KERVER/hdal/kflow_gfx/nvt_gfx.ko
	insmod /lib/modules/$KERVER/hdal/kdrv_videocodec/kdrv_h26x.ko
	insmod /lib/modules/$KERVER/hdal/nvt_vencrc/nvt_vencrc.ko
	# isf vdoenc
	insmod /lib/modules/$KERVER/hdal/kflow_videoenc/unit/kflow_videoenc.ko
	# audio
	insmod /lib/modules/$KERVER/hdal/kdrv_audioio/audio_common/nvt_audio.ko
	insmod /lib/modules/$KERVER/hdal/kdrv_audioio/kdrv_audio/nvt_kdrv_audio.ko
	insmod /lib/modules/$KERVER/hdal/kflow_audiocapture/unit/kflow_audiocap.ko
	insmod /lib/modules/$KERVER/hdal/kflow_audioout/unit/kflow_audioout.ko
	# isf audenc
	insmod /lib/modules/$KERVER/hdal/kflow_audioenc/unit/kflow_audioenc.ko
	# isf auddec
	insmod /lib/modules/$KERVER/hdal/kflow_audiodec/unit/kflow_audiodec.ko
	# iq, 3a
	insmod /lib/modules/$KERVER/hdal/isp/nvt_isp.ko isp_id_list=0x1B
	insmod /lib/modules/$KERVER/hdal/awb/nvt_awb.ko awb_id_list=0x1B
	insmod /lib/modules/$KERVER/hdal/iq/nvt_iq.ko iq_id_list=0x1B
	insmod /lib/modules/$KERVER/hdal/ae/nvt_ae.ko ae_id_list=0x1B
	insmod /lib/modules/$KERVER/hdal/vpe/nvt_vpe.ko
	# disable childless pll
	echo d > /proc/nvt_info/nvt_clk/clk_childless
	# 可能用到的sensor列表
	if [ -e /etc/sensor_name.config ]
	then
		sensor_list=$(cat /etc/sensor_name.config)
		echo sensor_list=${sensor_list}
		sen_det_list=""
		for sensor in $sensor_list
		do
			sen_det_list=${sen_det_list}${sensor},
		done
		sen_det_list=${sen_det_list%?}
	else
		echo "no sensor_name.config, please add in product config!"
		sen_det_list=${sensor_list}
	fi
	for sensor in $sensor_list
	do
		modprobe nvt_sen_${sensor} sen_cfg_path=/mnt/app/sensor/sen_${sensor}.cfg
	done
	# 加载sensor探测脚本
	modprobe nvt_sen_det.ko para=${sen_det_list}
	echo sensor_list=${sensor_list}
	echo sen_det_list=${sen_det_list}
	sleep 2
	target_sensor=$(cat /proc/sen_det/sen_name)
	# 卸载其余驱动
	for sensor in $sensor_list
	do
		if [ nvt_sen_${sensor} != $target_sensor ]
		then
			rmmod nvt_sen_${sensor}.ko
		fi
	done
	echo "use sensor ${target_sensor}"
	#ai
	#insmod /lib/modules/$KERVER/hdal/kdrv_ai/kdrv_ai.ko ai_net_supported_num=8
	#insmod /lib/modules/4.19.91/hdal/kflow_cnn/kflow_cnn.ko
	#insmod /lib/modules/4.19.91/hdal/kflow_nue/kflow_nue.ko
	#insmod /lib/modules/4.19.91/hdal/kflow_nue2/kflow_nue2.ko
	#insmod /lib/modules/4.19.91/hdal/kflow_cpu/kflow_cpu.ko
	#insmod /lib/modules/4.19.91/hdal/kflow_dsp/kflow_dsp.ko
	#insmod /lib/modules/4.19.91/hdal/kflow_ai_net/kflow_ai_net.ko
	#insmod /lib/modules/$KERVER/hdal/net_flow_sample/netflowsample.ko
	insmod /lib/modules/$KERVER/hdal/kdrv_ai/kdrv_ai.ko ai_net_supported_num=32
	insmod /lib/modules/$KERVER/hdal/kflow_ai/kflow_ai.ko
	echo 3 > /proc/sys/vm/drop_caches
	sleep 1
	free
}
stop() {
	echo sysexit
}
