mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
Merge pull request #1999 from stolen/usbgadget-fix
usbgadget: properly restore host mode on boot
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user