diff --git a/general/package/sigmastar-osdrv-infinity6b0/files/script/load_sigmastar b/general/package/sigmastar-osdrv-infinity6b0/files/script/load_sigmastar index 81088bfc..490efb27 100755 --- a/general/package/sigmastar-osdrv-infinity6b0/files/script/load_sigmastar +++ b/general/package/sigmastar-osdrv-infinity6b0/files/script/load_sigmastar @@ -5,47 +5,30 @@ PATH_MODULE=/lib/modules/4.9.84/sigmastar PATH_FIRMWARE=/etc/sensors/venc_fw/chagall.bin - -# 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 - gc2053) - # Untested | The information is obtained from the Gospell firmware - insmod ${PATH_MODULE}/sensor_gc2053_mipi.ko chmap=1 lane_num=2 hdr_lane_num=2 + gc4653|imx335|sc2239|sc3335) + insmod ${PATH_MODULE}/sensor_${SENSOR}_mipi.ko chmap=1 ;; - gc4653) - # Untested | The information is obtained from the Anjoy firmware - insmod ${PATH_MODULE}/sensor_gc4653_mipi.ko chmap=1 + gc2053|sc2335) + insmod ${PATH_MODULE}/sensor_${SENSOR}_mipi.ko chmap=1 lane_num=2 hdr_lane_num=2 ;; imx307) - # Untested | The information is obtained from the Anjoy and Brovotech (mclk=37.125M) firmware - 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 + insmod ${PATH_MODULE}/sensor_${SENSOR}_mipi.ko chmap=1 lane_num=2 hdr_lane_num=2 mclk=37.125M ;; *) - 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 } @@ -63,7 +46,6 @@ insert_ko() { insmod ${PATH_MODULE}/mi_vif.ko insmod ${PATH_MODULE}/mi_vpe.ko insmod ${PATH_MODULE}/mi_venc.ko fw_path=${PATH_FIRMWARE} - set_sensor major=$(awk '$2=="mi_poll" {print $1}' /proc/devices) mknod /dev/mi_poll c $major 0 @@ -72,16 +54,21 @@ insert_ko() { 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 insert_ko 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 diff --git a/general/package/sigmastar-osdrv-infinity6b0/files/sensor/kmod/sensor_rx_mipi.ko b/general/package/sigmastar-osdrv-infinity6b0/files/sensor/kmod/sensor_rx_mipi.ko new file mode 100644 index 00000000..11e63e3e Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6b0/files/sensor/kmod/sensor_rx_mipi.ko differ diff --git a/general/package/sigmastar-osdrv-infinity6e/files/script/load_sigmastar b/general/package/sigmastar-osdrv-infinity6e/files/script/load_sigmastar index bb405be5..24b38e3b 100755 --- a/general/package/sigmastar-osdrv-infinity6e/files/script/load_sigmastar +++ b/general/package/sigmastar-osdrv-infinity6e/files/script/load_sigmastar @@ -5,10 +5,28 @@ PATH_MODULE=/lib/modules/4.9.84/sigmastar PATH_FIRMWARE=/etc/sensors/venc_fw/chagall.bin - -# 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() { insmod ${PATH_MODULE}/mhal.ko insmod ${PATH_MODULE}/mi_common.ko @@ -24,7 +42,6 @@ insert_ko() { insmod ${PATH_MODULE}/mi_vif.ko insmod ${PATH_MODULE}/mi_vpe.ko 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) mknod /dev/mi_poll c $major 0 @@ -33,16 +50,21 @@ insert_ko() { 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 insert_ko 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 diff --git a/general/package/sigmastar-osdrv-infinity6e/files/sensor/kmod/sensor_rx_mipi.ko b/general/package/sigmastar-osdrv-infinity6e/files/sensor/kmod/sensor_rx_mipi.ko new file mode 100644 index 00000000..1217b349 Binary files /dev/null and b/general/package/sigmastar-osdrv-infinity6e/files/sensor/kmod/sensor_rx_mipi.ko differ