From c9fdfc7e1333eae7dc6a6eaa61e2f2d25966b13f Mon Sep 17 00:00:00 2001 From: Cédric Berger Date: Sat, 21 Mar 2026 16:26:23 +0100 Subject: Don't crash on driver without init() Handle init() like deinit() --- src/host/usbh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/host/usbh.c b/src/host/usbh.c index 75df6bf60..9dbd422b9 100644 --- a/src/host/usbh.c +++ b/src/host/usbh.c @@ -544,7 +544,7 @@ bool tuh_rhport_init(uint8_t rhport, const tusb_rhport_init_t* rh_init) { // Class drivers for (uint8_t drv_id = 0; drv_id < TOTAL_DRIVER_COUNT; drv_id++) { usbh_class_driver_t const* driver = get_driver(drv_id); - if (driver != NULL) { + if (driver != NULL && driver->init) { TU_LOG_USBH("%s init\r\n", driver->name); driver->init(); } -- cgit v1.3.1 From f0d7db1788bc526d75c400f3362e4ee7540363a6 Mon Sep 17 00:00:00 2001 From: Cédric Berger Date: Sun, 22 Mar 2026 21:56:58 +0100 Subject: Unifiy Device and Host side --- src/device/usbd.c | 7 ++++--- src/host/usbh.c | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/device/usbd.c b/src/device/usbd.c index 42903576c..c7f511eac 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -572,9 +572,10 @@ bool tud_rhport_init(uint8_t rhport, const tusb_rhport_init_t* rh_init) { // Init class drivers for (uint8_t i = 0; i < TOTAL_DRIVER_COUNT; i++) { usbd_class_driver_t const* driver = get_driver(i); - TU_ASSERT(driver && driver->init); - TU_LOG_USBD("%s init\r\n", driver->name); - driver->init(); + if (driver && driver->init) { + TU_LOG_USBD("%s init\r\n", driver->name); + driver->init(); + } } _usbd_rhport = rhport; diff --git a/src/host/usbh.c b/src/host/usbh.c index 9dbd422b9..f65a3a427 100644 --- a/src/host/usbh.c +++ b/src/host/usbh.c @@ -544,7 +544,7 @@ bool tuh_rhport_init(uint8_t rhport, const tusb_rhport_init_t* rh_init) { // Class drivers for (uint8_t drv_id = 0; drv_id < TOTAL_DRIVER_COUNT; drv_id++) { usbh_class_driver_t const* driver = get_driver(drv_id); - if (driver != NULL && driver->init) { + if (driver && driver->init) { TU_LOG_USBH("%s init\r\n", driver->name); driver->init(); } -- cgit v1.3.1