adb: support adb boardctl when not composite device

Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
This commit is contained in:
zhangyuan21 2023-07-29 16:11:39 +08:00 committed by Xiang Xiao
parent 3648c0cc5c
commit 987cb1ebd9
2 changed files with 24 additions and 11 deletions

View File

@ -171,6 +171,15 @@ config ADBD_BOARD_INIT
---help---
Setup board before running adb daemon.
config ADBD_USB_BOARDCTL
bool "USB Board Control"
depends on BOARDCTL
depends on ADBD_USB_SERVER
select BOARDCTL_USBDEVCTRL
default ADBD_BOARD_INIT
---help---
Connect usbdev before running adb daemon.
config ADBD_NET_INIT
bool "Network initialization"
default n

View File

@ -27,7 +27,8 @@
#include <stdio.h>
#include <syslog.h>
#if defined(CONFIG_ADBD_BOARD_INIT) || defined (CONFIG_BOARDCTL_RESET)
#if defined(CONFIG_ADBD_BOARD_INIT) || defined (CONFIG_BOARDCTL_RESET) || \
defined(CONFIG_ADBD_USB_BOARDCTL)
# include <sys/boardctl.h>
#endif
@ -77,20 +78,24 @@ int main(int argc, FAR char **argv)
#ifdef CONFIG_ADBD_BOARD_INIT
boardctl(BOARDIOC_INIT, 0);
#endif /* CONFIG_ADBD_BOARD_INIT */
#if defined(CONFIG_ADBD_USB_SERVER) && \
defined(CONFIG_USBDEV_COMPOSITE) && \
defined (CONFIG_BOARDCTL_USBDEVCTRL)
#ifdef CONFIG_ADBD_USB_BOARDCTL
/* Setup composite USB device */
/* Setup USBADB device */
struct boardioc_usbdev_ctrl_s ctrl;
int ret;
#ifdef CONFIG_USBDEV_COMPOSITE
uint8_t usbdev = BOARDIOC_USBDEV_COMPOSITE;
#else
uint8_t usbdev = BOARDIOC_USBDEV_ADB;
#endif
FAR void *handle;
int ret;
/* Perform architecture-specific initialization */
ctrl.usbdev = BOARDIOC_USBDEV_COMPOSITE;
ctrl.usbdev = usbdev;
ctrl.action = BOARDIOC_USBDEV_INITIALIZE;
ctrl.instance = 0;
ctrl.config = 0;
@ -103,9 +108,9 @@ int main(int argc, FAR char **argv)
return 1;
}
/* Initialize the USB composite device device */
/* Connect the USB composite device device */
ctrl.usbdev = BOARDIOC_USBDEV_COMPOSITE;
ctrl.usbdev = usbdev;
ctrl.action = BOARDIOC_USBDEV_CONNECT;
ctrl.instance = 0;
ctrl.config = 0;
@ -117,8 +122,7 @@ int main(int argc, FAR char **argv)
printf("boardctl(BOARDIOC_USBDEV_CONTROL) failed: %d\n", ret);
return 1;
}
#endif /* ADBD_USB_SERVER && USBDEV_COMPOSITE && BOARDCTL_USBDEVCTRL */
#endif /* CONFIG_ADBD_BOARD_INIT */
#endif /* ADBD_USB_BOARDCTL */
#ifdef CONFIG_ADBD_NET_INIT
/* Bring up the network */