mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			[no ci] Sigmastar: add sensor autodetection
							parent
							
								
									3fd464904e
								
							
						
					
					
						commit
						18644a1711
					
				|  | @ -5,47 +5,30 @@ | ||||||
| 
 | 
 | ||||||
| PATH_MODULE=/lib/modules/4.9.84/sigmastar | PATH_MODULE=/lib/modules/4.9.84/sigmastar | ||||||
| PATH_FIRMWARE=/etc/sensors/venc_fw/chagall.bin | PATH_FIRMWARE=/etc/sensors/venc_fw/chagall.bin | ||||||
| 
 |  | ||||||
| # Sensor |  | ||||||
| SENSOR=$(fw_printenv -n sensor) | SENSOR=$(fw_printenv -n sensor) | ||||||
| 
 | 
 | ||||||
|  | detect_sensor() { | ||||||
|  |   insmod ${PATH_MODULE}/sensor_rx_mipi.ko chmap=1 | ||||||
|  |   SENSOR=$(majestic | awk '/Autodetect/ {print $NF}') | ||||||
|  |   rmmod drv_ms_cus_RX_MIPI | ||||||
|  |   fw_setenv sensor ${SENSOR} | ||||||
|  | } | ||||||
|  | 
 | ||||||
| set_sensor() { | set_sensor() { | ||||||
|  |   $(lsmod | grep -q ${SENSOR}) && rmmod drv_ms_cus_${SENSOR}_MIPI | ||||||
|  | 
 | ||||||
|   case $SENSOR in |   case $SENSOR in | ||||||
|     gc2053) |     gc4653|imx335|sc2239|sc3335) | ||||||
|       # Untested | The information is obtained from the Gospell firmware |       insmod ${PATH_MODULE}/sensor_${SENSOR}_mipi.ko chmap=1 | ||||||
|       insmod ${PATH_MODULE}/sensor_gc2053_mipi.ko chmap=1 lane_num=2 hdr_lane_num=2 |  | ||||||
|       ;; |       ;; | ||||||
|     gc4653) |     gc2053|sc2335) | ||||||
|       # Untested | The information is obtained from the Anjoy firmware |       insmod ${PATH_MODULE}/sensor_${SENSOR}_mipi.ko chmap=1 lane_num=2 hdr_lane_num=2 | ||||||
|       insmod ${PATH_MODULE}/sensor_gc4653_mipi.ko chmap=1 |  | ||||||
|       ;; |       ;; | ||||||
|     imx307) |     imx307) | ||||||
|       # Untested | The information is obtained from the Anjoy and Brovotech (mclk=37.125M) firmware |       insmod ${PATH_MODULE}/sensor_${SENSOR}_mipi.ko chmap=1 lane_num=2 hdr_lane_num=2 mclk=37.125M | ||||||
|       insmod ${PATH_MODULE}/sensor_imx307_mipi.ko chmap=1 lane_num=2 hdr_lane_num=2 mclk=37.125M |  | ||||||
|       ;; |  | ||||||
|     imx335) |  | ||||||
|       # Untested | The information is obtained from the Anjoy firmware |  | ||||||
|       insmod ${PATH_MODULE}/sensor_imx335_mipi.ko chmap=1 |  | ||||||
|       ;; |  | ||||||
|     sc2239) |  | ||||||
|       # Untested | The information is obtained from the IMOU firmware |  | ||||||
|       insmod ${PATH_MODULE}/sensor_sc2239_mipi.ko chmap=1 |  | ||||||
|       ;; |  | ||||||
|     sc2335) |  | ||||||
|       # Untested | The information is obtained from the Tiandy firmware |  | ||||||
|       insmod ${PATH_MODULE}/sensor_sc2335_mipi.ko chmap=1 lane_num=2 hdr_lane_num=2 |  | ||||||
|       ;; |  | ||||||
|     sc3335) |  | ||||||
|       # Untested | The information is obtained from the Uniview firmware |  | ||||||
|       insmod ${PATH_MODULE}/sensor_sc3335_mipi.ko chmap=1 |  | ||||||
|       ;; |  | ||||||
|     auto) |  | ||||||
|       insmod ${PATH_MODULE}/sensor_imx307_mipi.ko chmap=1 lane_num=2 hdr_lane_num=2 mclk=37.125M |  | ||||||
|       insmod ${PATH_MODULE}/sensor_gc2053_mipi.ko chmap=1 lane_num=2 hdr_lane_num=2 |  | ||||||
|       insmod ${PATH_MODULE}/sensor_sc2335_mipi.ko chmap=1 lane_num=2 hdr_lane_num=2 |  | ||||||
|       ;; |       ;; | ||||||
|     *) |     *) | ||||||
|       echo -e "\n\e[1;31mAn UNSUPPORTED sensor type is specified - ${SENSOR}\e[0m\n" | logger -s -t OpenIPC |       echo -e "\n\e[1;31mUNSUPPORTED sensor found - ${SENSOR}\e[0m\n" | logger -s -t OpenIPC | ||||||
|       ;; |       ;; | ||||||
|   esac |   esac | ||||||
| } | } | ||||||
|  | @ -63,7 +46,6 @@ insert_ko() { | ||||||
|   insmod ${PATH_MODULE}/mi_vif.ko |   insmod ${PATH_MODULE}/mi_vif.ko | ||||||
|   insmod ${PATH_MODULE}/mi_vpe.ko |   insmod ${PATH_MODULE}/mi_vpe.ko | ||||||
|   insmod ${PATH_MODULE}/mi_venc.ko fw_path=${PATH_FIRMWARE} |   insmod ${PATH_MODULE}/mi_venc.ko fw_path=${PATH_FIRMWARE} | ||||||
|   set_sensor |  | ||||||
| 
 | 
 | ||||||
|   major=$(awk '$2=="mi_poll" {print $1}' /proc/devices) |   major=$(awk '$2=="mi_poll" {print $1}' /proc/devices) | ||||||
|   mknod /dev/mi_poll c $major 0 |   mknod /dev/mi_poll c $major 0 | ||||||
|  | @ -72,16 +54,21 @@ insert_ko() { | ||||||
|   mdev -s |   mdev -s | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| if [ -z ${SENSOR} ]; then |  | ||||||
|   echo -e "\n\e[1;31mThe sensor parameter is MISSING\e[0m\n" | logger -s -t OpenIPC |  | ||||||
|   echo -e "\n\e[1;33mUsage: fw_setenv sensor [SENSOR]\e[0m\n" | logger -s -t OpenIPC |  | ||||||
|   exit 1 |  | ||||||
| else |  | ||||||
|   echo -e "\n\e[1;32mThe sensor is assigned - ${SENSOR}\e[0m\n" | logger -s -t OpenIPC |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ ! -e /dev/mi_poll ]; then | if [ ! -e /dev/mi_poll ]; then | ||||||
|   insert_ko |   insert_ko | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
|  | if [ -z ${SENSOR} ]; then | ||||||
|  |   echo -e "\n\e[1;33mAutodetect sensor\e[0m\n" | logger -s -t OpenIPC | ||||||
|  |   detect_sensor | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | if [ -z ${SENSOR} ]; then | ||||||
|  |   echo -e "\n\e[1;31mSensor parameter is MISSING\e[0m\n" | logger -s -t OpenIPC | ||||||
|  |   exit 1 | ||||||
|  | else | ||||||
|  |   echo -e "\n\e[1;32mSensor is assigned - ${SENSOR}\e[0m\n" | logger -s -t OpenIPC | ||||||
|  |   set_sensor | ||||||
|  | fi | ||||||
|  | 
 | ||||||
| exit 0 | exit 0 | ||||||
|  |  | ||||||
											
												Binary file not shown.
											
										
									
								|  | @ -5,10 +5,28 @@ | ||||||
| 
 | 
 | ||||||
| PATH_MODULE=/lib/modules/4.9.84/sigmastar | PATH_MODULE=/lib/modules/4.9.84/sigmastar | ||||||
| PATH_FIRMWARE=/etc/sensors/venc_fw/chagall.bin | PATH_FIRMWARE=/etc/sensors/venc_fw/chagall.bin | ||||||
| 
 |  | ||||||
| # Sensor |  | ||||||
| SENSOR=$(fw_printenv -n sensor) | SENSOR=$(fw_printenv -n sensor) | ||||||
| 
 | 
 | ||||||
|  | detect_sensor() { | ||||||
|  |   insmod ${PATH_MODULE}/sensor_rx_mipi.ko chmap=1 | ||||||
|  |   SENSOR=$(majestic | awk '/Autodetect/ {print $NF}') | ||||||
|  |   rmmod drv_ms_cus_RX_MIPI | ||||||
|  |   fw_setenv sensor ${SENSOR} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | set_sensor() { | ||||||
|  |   $(lsmod | grep -q ${SENSOR}) && rmmod drv_ms_cus_${SENSOR}_MIPI | ||||||
|  | 
 | ||||||
|  |   case $SENSOR in | ||||||
|  |     imx274|imx335|imx347|imx415|sc8235) | ||||||
|  |       insmod ${PATH_MODULE}/sensor_${SENSOR}_mipi.ko chmap=1 | ||||||
|  |       ;; | ||||||
|  |     *) | ||||||
|  |       echo -e "\n\e[1;31mUNSUPPORTED sensor found - ${SENSOR}\e[0m\n" | logger -s -t OpenIPC | ||||||
|  |       ;; | ||||||
|  |   esac | ||||||
|  | } | ||||||
|  | 
 | ||||||
| insert_ko() { | insert_ko() { | ||||||
|   insmod ${PATH_MODULE}/mhal.ko |   insmod ${PATH_MODULE}/mhal.ko | ||||||
|   insmod ${PATH_MODULE}/mi_common.ko |   insmod ${PATH_MODULE}/mi_common.ko | ||||||
|  | @ -24,7 +42,6 @@ insert_ko() { | ||||||
|   insmod ${PATH_MODULE}/mi_vif.ko |   insmod ${PATH_MODULE}/mi_vif.ko | ||||||
|   insmod ${PATH_MODULE}/mi_vpe.ko |   insmod ${PATH_MODULE}/mi_vpe.ko | ||||||
|   insmod ${PATH_MODULE}/mi_venc.ko fw_path=${PATH_FIRMWARE} |   insmod ${PATH_MODULE}/mi_venc.ko fw_path=${PATH_FIRMWARE} | ||||||
|   insmod ${PATH_MODULE}/sensor_${SENSOR}_mipi.ko chmap=1 |  | ||||||
| 
 | 
 | ||||||
|   major=$(awk '$2=="mi_poll" {print $1}' /proc/devices) |   major=$(awk '$2=="mi_poll" {print $1}' /proc/devices) | ||||||
|   mknod /dev/mi_poll c $major 0 |   mknod /dev/mi_poll c $major 0 | ||||||
|  | @ -33,16 +50,21 @@ insert_ko() { | ||||||
|   mdev -s |   mdev -s | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| if [ -z ${SENSOR} ]; then |  | ||||||
|   echo -e "\n\e[1;31mThe sensor parameter is MISSING\e[0m\n" | logger -s -t OpenIPC |  | ||||||
|   echo -e "\n\e[1;33mUsage: fw_setenv sensor [SENSOR]\e[0m\n" | logger -s -t OpenIPC |  | ||||||
|   exit 1 |  | ||||||
| else |  | ||||||
|   echo -e "\n\e[1;32mThe sensor is assigned - ${SENSOR}\e[0m\n" | logger -s -t OpenIPC |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ ! -e /dev/mi_poll ]; then | if [ ! -e /dev/mi_poll ]; then | ||||||
|   insert_ko |   insert_ko | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
|  | if [ -z ${SENSOR} ]; then | ||||||
|  |   echo -e "\n\e[1;33mAutodetect sensor\e[0m\n" | logger -s -t OpenIPC | ||||||
|  |   detect_sensor | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | if [ -z ${SENSOR} ]; then | ||||||
|  |   echo -e "\n\e[1;31mSensor parameter is MISSING\e[0m\n" | logger -s -t OpenIPC | ||||||
|  |   exit 1 | ||||||
|  | else | ||||||
|  |   echo -e "\n\e[1;32mSensor is assigned - ${SENSOR}\e[0m\n" | logger -s -t OpenIPC | ||||||
|  |   set_sensor | ||||||
|  | fi | ||||||
|  | 
 | ||||||
| exit 0 | exit 0 | ||||||
|  |  | ||||||
											
												Binary file not shown.
											
										
									
								
		Loading…
	
		Reference in New Issue