Debug: Replace the args of usb_osal_thread_create with global parameter

This commit is contained in:
songyanguang 2024-09-03 16:57:49 +08:00
parent abee37bf31
commit 35b70a666c
2 changed files with 19 additions and 5 deletions

View File

@ -43,6 +43,7 @@ extern int usbh_enumerate(struct usbh_hubport *hport);
static void usbh_hub_thread_wakeup(struct usbh_hub *hub);
static const char *speed_table[] = { "error-speed", "low-speed", "full-speed", "high-speed", "wireless-speed", "super-speed", "superplus-speed" };
struct usbh_bus *g_usb_debug;
struct usbh_hubport *usbh_get_roothub_port (struct usbh_bus *bus, unsigned int address)
{
@ -689,6 +690,8 @@ static void usbh_hub_thread(void *argument)
int ret = 0;
struct usbh_bus *usb = (struct usbh_bus *)argument;
USB_LOG_DBG("usbh_hub_thread usb pointer=%08x\r\n", usb);
usb = g_usb_debug;
USB_LOG_DBG("usbh_hub_thread usb pointer=%08x\r\n", usb);
usb_hc_init(usb->id);
while (1) {
@ -763,7 +766,7 @@ int usbh_hub_initialize(struct usbh_bus *usb)
if (usb->hub_mq == NULL) {
return -1;
}
g_usb_debug = usb;
USB_LOG_DBG("usbh_hub_initialize usb pointer=%08x\r\n", usb);
char thread_name[12];
snprintf(thread_name, 12, "usb%d_hub", usb->id);
@ -771,6 +774,9 @@ int usbh_hub_initialize(struct usbh_bus *usb)
if (usb->hub_thread == NULL) {
return -1;
}
#if 1
usb_osal_msleep(10); //Avoid log character confusion after usb_osal_thread_create
#endif
return 0;
}

View File

@ -52,6 +52,7 @@ Modification: Modify USB Device Initialization in xHCI code to apply to XiZi AIO
/************************** Constant Definitions *****************************/
/************************** Variable Definitions *****************************/
struct xhci_host *g_xhci_debug;
/***************** Macros (Inline Functions) Definitions *********************/
@ -1068,8 +1069,10 @@ int IPC_DO_SERVE_FUNC(Ipc_xhci_intr)(void* ignore)
{
printf("TEST_SW_HDLR: In %s()\n", __func__);
intptr_t id;
struct xhci_host *xhci = g_xhci_debug;
id = 0;
id = xhci->bus->id;
USB_LOG_DBG("Ipc_xhci_intr id=%d\n", id);
XHCI_USBH_IRQHandler((void *)id);
return 0;
@ -1083,6 +1086,8 @@ int bind_xhci_intr(void *para){
int irq_no = USB3_0_INTERRUPT_NO;
struct xhci_host *xhci = (struct xhci_host *)para;
USB_LOG_DBG("bind_xhci_intr xhci pointer=%08x\n", xhci);
xhci = g_xhci_debug;
USB_LOG_DBG("bind_xhci_intr xhci pointer=%08x\n", xhci);
if (USB3_0_ID == xhci->bus->id) {
irq_no = USB3_0_INTERRUPT_NO;
@ -1111,7 +1116,7 @@ int bind_xhci_intr(void *para){
int create_xhci_intr_service(void *para){
struct xhci_host *xhci;
int tid;
char *task_param[] = { para, NULL };
xhci = (struct xhci_host *)para;
@ -1119,8 +1124,9 @@ int create_xhci_intr_service(void *para){
return -1;
}
g_xhci_debug = xhci;
USB_LOG_DBG("create_xhci_intr_service xhci pointer=%08x\n", xhci);
tid = thread(bind_xhci_intr, "xhci_intr_procedure", para);
tid = thread(bind_xhci_intr, "xhci_intr_procedure", task_param);
/* Create thread error! */
if(tid < 0){
@ -1130,7 +1136,9 @@ int create_xhci_intr_service(void *para){
}else{
/* Child thread. do nothing except for the interrupt processing function. */
}
#if 1
usb_osal_msleep(10); //Avoid log character confusion after usb_osal_thread_create
#endif
return 0;
}