update usb host connect disconnect#100072
update usb host connect disconnect#100072AidenHu wants to merge 21 commits intozephyrproject-rtos:mainfrom
Conversation
|
@josuah |
| k_mutex_lock(&ctx->mutex, K_FOREVER); | ||
| sys_dlist_remove(&udev->node); | ||
| k_mutex_unlock(&ctx->mutex); |
There was a problem hiding this comment.
Likewise, usbh_device_free() takes care of calling sys_dlis_remove();, so not needed here (unless it is removed from usbh_device_free().
There was a problem hiding this comment.
remove this duplicated code.
| k_mutex_lock(&ctx->mutex, K_FOREVER); | ||
| sys_dlist_remove(&udev->node); | ||
| k_mutex_unlock(&ctx->mutex); |
There was a problem hiding this comment.
Same here: usbh_device_free() already calls calling sys_dlis_remove().
|
Once comments above adjusted, I can integrate it to API4, and if that makes sense to you, it is possible to put this PR on top of |
7583e8f to
7a5adf2
Compare
@josuah |
7a5adf2 to
06dc8e1
Compare
06dc8e1 to
b4fb918
Compare
Add a "struct usbh_status" that contains a bitmask of flags to keep track of the global state of the host context, like done for the device_next implementation. Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Add missing copyright notice for the linker script to help with check_compliance.py. Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Add a "struct usbh_class_api" for the host implementation, and move all the function poitners to it. Add more fields to "struct usbh_class_data". Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Add API wrappers around the function pointers in struct usbh_class_api, while also documenting the USB host class internal API. Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Add functions to probe/remove all classes as part of a new usbh_class.c and a matching usbh_class.h. These functions are called from the function usbh_init_device_intl() in usbh_core.c to initialize every class upon connection of a device. Every class driver provide filters to match the interfaces of the device. Co-authored-by: Aiden Hu <weiwei.hu@nxp.com> Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Move the UVC header with all the definitions from the UVC standard to share it between USB host and device class implementation. Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Add tests making sure the USB Host class APIs introduced build and run as expected. Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Add tests making sure the USB Host class APIs introduced build and run as expected. Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Move the UVC header with all the definitions from the UVC standard to share it between USB host and device class implementation. Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Move UVC helper functions to a file shared between UVC host and device. The arrays are not visible anymore from either USB host or device, but instead accessed through a front-end funciton. Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
The USB control size field was wrong for UVC_PU_CONTRAST_CONTROL. Correct it to the correct value from the standard. Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Loop through each of the VideoStreaming and VideoControl descriptor to parse them. This is meant as a stub for the purpose of testing the class API. Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Add a test to run the USB Video Class host support by using the existing Zephyr USB Video Class device support. This allows running implementing the host side from the device side. A draft implementation of UVC is added leveraging this test. Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
The public API file <zephyr/usb/class/usbd_uvc.h> lacked an include to <zephyr/drivers/video.h> making it fail depending on the order of the includes. Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Modify the USB device int sequence to read the device descriptor only after setting a valid device address. Signed-off-by: Santhosh Charles <santhosh@linumiz.com>
When hub is used, need to consider about multiple devices are attached. Signed-off-by: Aiden Hu <weiwei.hu@nxp.com>
add usbh_device_get_root and usbh_device_is_root function to check root device Signed-off-by: Aiden Hu <weiwei.hu@nxp.com>
For usb xfer, set endpoint type and interval by the selected endpoint desc. Signed-off-by: Aiden Hu <weiwei.hu@nxp.com>
Convert xfer's interval to actual value because mcux_ep->interval is already calculated. Signed-off-by: Aiden Hu <weiwei.hu@nxp.com>
maxPacketSize and numberPerUframe of pipe should be set considering additional transactions. Signed-off-by: Aiden Hu <weiwei.hu@nxp.com>
Add two functions: usbh_connect_device() for device connection usbh_disconnect_device() for device disconnection These functions centralize the logic for device attach/detach, including class probe and remove handling. They can be invoked by the hub class as well as dev_connected_handler and dev_removed_handler, improving code clarity and reuse. Signed-off-by: Aiden Hu <weiwei.hu@nxp.com>
b4fb918 to
d194419
Compare
|
|
This pull request has been marked as stale because it has been open (more than) 60 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this pull request will automatically be closed in 14 days. Note, that you can always re-open a closed pull request at any time. |



Dependency:
USB Host: integrate class API [4: aggregated] #99775
This change is used to update usb host connection/disconnection even when usb hub is used.