Merge pull request #1999 from stolen/usbgadget-fix

usbgadget: properly restore host mode on boot
This commit is contained in:
Danil Zagoskin
2025-11-11 09:20:02 +03:00
committed by GitHub

View File

@@ -298,7 +298,7 @@ cleanup_usb_mtp() {
set_role() {
for sw in $(ls -1 /sys/class/udc/${UDC_NAME}/device/usb_role/*/role 2>/dev/null); do
if [ "$verbose" -gt "0" ]; then echo "swithing usb role to device: $sw"; fi
if [ "$verbose" -gt "0" ]; then echo "swithing usb role to $1: $sw"; fi
echo $1 > $sw
done
}
@@ -328,8 +328,13 @@ usb_start() {
usb_stop
fi
# If there is a role switch, switch to device mode
set_role device
if [ "${USB_MODE}" == "disabled" ]; then
usb_disable
set_role host
return
else
set_role device
fi
if [ "${USB_MODE}" = mtp ] ; then
if [ ! -d "${g_mtp}" ]; then
@@ -382,6 +387,17 @@ usb_stop() {
) >/dev/null 2>&1
}
set_usb_mode() {
case "${1}" in
cdc|mtp)
usb_start "${1}"
;;
*)
usb_stop
;;
esac
}
case "$1" in
prepare)
prepare_usb_network
@@ -415,10 +431,9 @@ case "$1" in
echo "disabled network file_transfer"
;;
"--start")
set_role host
prepare_usb_network
prepare_usb_mtp
usb_start
set_usb_mode "${USB_MODE}"
;;
"")
case ${CURRENT_MODE} in