#!/bin/sh /etc/rc.common
#Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
#All rights reserved.
#Confidential and Proprietary - Qualcomm Technologies, Inc.
#+quectel-20230427, let port-bridge start earlier
#START=97
START=10
#-quectel-20230427, let port-bridge start earlier
#+quectel-20230816, let port-bridge stop earlier
#STOP=95
STOP=88
#-quectel-20230816, let port-bridge stop earlier

USE_PROCD=1

#+quectel-20230427, start two port-bridge to support both AT and modem ports
#SERVICE_PID_FILE=/var/run/port-bridge.pid
#SERVICE_WRITE_PID=1
#-quectel-20230427, start two port-bridge to support both AT and modem ports

start_service() {
    #+quectel-20230516 Modify device file permissions
    chmod 777 /dev/at_mdm0
    chmod 777 /dev/at_usb0
    chmod 777 /dev/smd7
    chmod 777 /dev/at_usb2
    #+quectel-20230516 Modify device file permissions

    procd_open_instance
    chown radio:radio /dev/at_mdm0
    chown radio:radio /dev/at_usb0
    chown radio:radio /dev/mhi_pipe_32
    chown radio:radio /dev/mhi_ctrl
    #procd_set_param command /usr/bin/port-bridge
    procd_set_param command /usr/bin/port-bridge at_mdm0 at_usb0 0
    procd_set_param respawn
    #-quectel-20230427, at_mdm0 at_usb0 for AT port and set respawn
    #+quectel-20230516,Change to root user
    [ -x /sbin/ujail -a -e /etc/capabilities/port-bridge.json ] && {
        procd_add_jail port-bridge
        procd_set_param capabilities /etc/capabilities/port-bridge.json
        procd_set_param user root
        procd_set_param group root
        procd_set_param no_new_privs 1
    }
    procd_close_instance

    #+quectel-20230427, add smd7 at_usb2 port-bridge to support modem port
    #+quectel-20230516,Change to root user
    procd_open_instance
    #add support PCIe AT port. xingduo.du 2024-06-17
    if [ -e /dev/mhi_ctrl ]; then
        procd_set_param command /usr/bin/port-bridge smd7 mhi_pipe_32 1
    else
        procd_set_param command /usr/bin/port-bridge smd7 at_usb2 1
    fi
    procd_set_param respawn
    [ -x /sbin/ujail -a -e /etc/capabilities/port-bridge.json ] && {
        procd_add_jail port-bridge
        procd_set_param capabilities /etc/capabilities/port-bridge.json
        procd_set_param user root
        procd_set_param group root
        procd_set_param no_new_privs 1
    }
    procd_close_instance
    #-quectel-20230427, add smd7 at_usb2 port-bridge to support modem port
}

stop_service() {
    echo "Stopping port-bridge"
}

reload_service() {
    chown radio:radio /dev/mhi_pipe_32
}

service_triggers() {
    procd_add_reload_trigger "port_bridged_reload"
}
