diff --git a/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/class/wireless/usbh_rndis.c b/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/class/wireless/usbh_rndis.c index 5cbb9b07b..1e7f50102 100644 --- a/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/class/wireless/usbh_rndis.c +++ b/Ubiquitous/XiZi_AIoT/services/drivers/usb/components/class/wireless/usbh_rndis.c @@ -9,6 +9,11 @@ File name: usbh_rndis.c Description: adopt cherry USB to XiZi AIOT. Others: take CherryUSB v0.10.2/class/wireless/usbh_rndis.c for references https://github.com/cherry-embedded/CherryUSB/blob/v0.10.2/class/wireless/usbh_rndis.c + +History: +1. Date: 2024-07-10 +Author: AIIT XUOS Lab +Modification: rndis ADAPTS to usb core to decouple xhci. *************************************************/ #include "usbh_core.h" @@ -43,7 +48,7 @@ static int usbh_rndis_init_msg_transfer(struct usbh_rndis *rndis_class) setup->wIndex = 0; setup->wLength = sizeof(rndis_initialize_msg_t); - ret = usbh_control_transfer(rndis_class->hport->ep0, setup, (uint8_t *)cmd); + ret = usbh_control_transfer_xiuos(rndis_class->hport, rndis_class->hport->ep0, setup, (uint8_t *)cmd); if (ret < 0) { USB_LOG_ERR("rndis_initialize_msg_t send error, ret: %d\r\n", ret); return ret; @@ -59,7 +64,7 @@ static int usbh_rndis_init_msg_transfer(struct usbh_rndis *rndis_class) setup->wIndex = 0; setup->wLength = 4096; - ret = usbh_control_transfer(rndis_class->hport->ep0, setup, (uint8_t *)resp); + ret = usbh_control_transfer_xiuos(rndis_class->hport, rndis_class->hport->ep0, setup, (uint8_t *)resp); if (ret < 0) { USB_LOG_ERR("rndis_initialize_cmplt_t recv error, ret: %d\r\n", ret); return ret; @@ -91,7 +96,7 @@ int usbh_rndis_query_msg_transfer(struct usbh_rndis *rndis_class, uint32_t oid, setup->wIndex = 0; setup->wLength = query_len + sizeof(rndis_query_msg_t); - ret = usbh_control_transfer(rndis_class->hport->ep0, setup, (uint8_t *)cmd); + ret = usbh_control_transfer_xiuos(rndis_class->hport, rndis_class->hport->ep0, setup, (uint8_t *)cmd); if (ret < 0) { USB_LOG_ERR("oid:%08x send error, ret: %d\r\n", (unsigned int)oid, ret); return ret; @@ -107,7 +112,7 @@ int usbh_rndis_query_msg_transfer(struct usbh_rndis *rndis_class, uint32_t oid, setup->wIndex = 0; setup->wLength = 4096; - ret = usbh_control_transfer(rndis_class->hport->ep0, setup, (uint8_t *)resp); + ret = usbh_control_transfer_xiuos(rndis_class->hport, rndis_class->hport->ep0, setup, (uint8_t *)resp); if (ret < 0) { USB_LOG_ERR("oid:%08x recv error, ret: %d\r\n", (unsigned int)oid, ret); return ret; @@ -143,7 +148,7 @@ static int usbh_rndis_set_msg_transfer(struct usbh_rndis *rndis_class, uint32_t setup->wIndex = 0; setup->wLength = info_len + sizeof(rndis_set_msg_t); - ret = usbh_control_transfer(rndis_class->hport->ep0, setup, (uint8_t *)cmd); + ret = usbh_control_transfer_xiuos(rndis_class->hport, rndis_class->hport->ep0, setup, (uint8_t *)cmd); if (ret < 0) { USB_LOG_ERR("oid:%08x send error, ret: %d\r\n", (unsigned int)oid, ret); return ret; @@ -159,7 +164,7 @@ static int usbh_rndis_set_msg_transfer(struct usbh_rndis *rndis_class, uint32_t setup->wIndex = 0; setup->wLength = 4096; - ret = usbh_control_transfer(rndis_class->hport->ep0, setup, (uint8_t *)resp); + ret = usbh_control_transfer_xiuos(rndis_class->hport, rndis_class->hport->ep0, setup, (uint8_t *)resp); if (ret < 0) { USB_LOG_ERR("oid:%08x recv error, ret: %d\r\n", (unsigned int)oid, ret); return ret; @@ -174,7 +179,7 @@ int usbh_rndis_bulk_out_transfer(struct usbh_rndis *rndis_class, uint8_t *buffer struct usbh_urb *urb = &rndis_class->bulkout_urb; memset(urb, 0, sizeof(struct usbh_urb)); - usbh_bulk_urb_fill(urb, rndis_class->bulkout, buffer, buflen, timeout, NULL, NULL); + usbh_bulk_urb_fill_xiuos(urb, rndis_class->hport, rndis_class->bulkout, buffer, buflen, timeout, NULL, NULL); ret = usbh_submit_urb(urb); if (ret == 0) { ret = urb->actual_length; @@ -188,7 +193,7 @@ int usbh_rndis_bulk_in_transfer(struct usbh_rndis *rndis_class, uint8_t *buffer, struct usbh_urb *urb = &rndis_class->bulkin_urb; memset(urb, 0, sizeof(struct usbh_urb)); - usbh_bulk_urb_fill(urb, rndis_class->bulkin, buffer, buflen, timeout, NULL, NULL); + usbh_bulk_urb_fill_xiuos(urb, rndis_class->hport, rndis_class->bulkin, buffer, buflen, timeout, NULL, NULL); ret = usbh_submit_urb(urb); if (ret == 0) { ret = urb->actual_length; @@ -215,7 +220,7 @@ int usbh_rndis_keepalive(struct usbh_rndis *rndis_class) setup->wIndex = 0; setup->wLength = sizeof(rndis_keepalive_msg_t); - ret = usbh_control_transfer(rndis_class->hport->ep0, setup, (uint8_t *)cmd); + ret = usbh_control_transfer_xiuos(rndis_class->hport, rndis_class->hport->ep0, setup, (uint8_t *)cmd); if (ret < 0) { USB_LOG_ERR("keepalive send error, ret: %d\r\n", ret); return ret; @@ -231,7 +236,7 @@ int usbh_rndis_keepalive(struct usbh_rndis *rndis_class) setup->wIndex = 0; setup->wLength = 4096; - ret = usbh_control_transfer(rndis_class->hport->ep0, setup, (uint8_t *)resp); + ret = usbh_control_transfer_xiuos(rndis_class->hport, rndis_class->hport->ep0, setup, (uint8_t *)resp); if (ret < 0) { USB_LOG_ERR("keepalive recv error, ret: %d\r\n", ret); return ret; @@ -386,11 +391,11 @@ static int usbh_rndis_disconnect(struct usbh_hubport *hport, uint8_t intf) if (rndis_class) { if (rndis_class->bulkin) { - usbh_pipe_free(rndis_class->bulkin); + usbh_pipe_free_xiuos(rndis_class->hport, rndis_class->bulkin); } if (rndis_class->bulkout) { - usbh_pipe_free(rndis_class->bulkout); + usbh_pipe_free_xiuos(rndis_class->hport, rndis_class->bulkout); } if (hport->config.intf[intf].devname[0] != '\0') {