diff --git a/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c b/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c index 96bfdba8..5c477958 100644 --- a/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c +++ b/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c @@ -262,8 +262,6 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { extern SerialUSBDriver SDU1; switch (event) { - case USB_EVENT_RESET: - return; case USB_EVENT_ADDRESS: return; case USB_EVENT_CONFIGURED: @@ -280,6 +278,10 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { chSysUnlockFromISR(); return; + case USB_EVENT_RESET: + /* Falls into. */ + case USB_EVENT_UNCONFIGURED: + /* Falls into. */ case USB_EVENT_SUSPEND: chSysLockFromISR(); @@ -289,6 +291,12 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { chSysUnlockFromISR(); return; case USB_EVENT_WAKEUP: + chSysLockFromISR(); + + /* Disconnection event on suspend */ + sduWakeupHookI(&SDU1); + + chSysUnlockFromISR(); return; case USB_EVENT_STALLED: return; diff --git a/testhal/KINETIS/FRDM-KL25Z/USB_HID/usbcfg.c b/testhal/KINETIS/FRDM-KL25Z/USB_HID/usbcfg.c index 30944b50..1f04a4c6 100644 --- a/testhal/KINETIS/FRDM-KL25Z/USB_HID/usbcfg.c +++ b/testhal/KINETIS/FRDM-KL25Z/USB_HID/usbcfg.c @@ -315,6 +315,8 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { osalSysUnlockFromISR(); return; + case USB_EVENT_UNCONFIGURED: + return; case USB_EVENT_SUSPEND: return; case USB_EVENT_WAKEUP: diff --git a/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/usbcfg.c b/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/usbcfg.c index fa5b4f42..0ec1c62a 100644 --- a/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/usbcfg.c +++ b/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/usbcfg.c @@ -262,8 +262,6 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { extern SerialUSBDriver SDU1; switch (event) { - case USB_EVENT_RESET: - return; case USB_EVENT_ADDRESS: return; case USB_EVENT_CONFIGURED: @@ -280,6 +278,10 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { chSysUnlockFromISR(); return; + case USB_EVENT_RESET: + /* Falls into. */ + case USB_EVENT_UNCONFIGURED: + /* Falls into. */ case USB_EVENT_SUSPEND: chSysLockFromISR(); @@ -289,6 +291,12 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { chSysUnlockFromISR(); return; case USB_EVENT_WAKEUP: + chSysLockFromISR(); + + /* Disconnection event on suspend */ + sduWakeupHookI(&SDU1); + + chSysUnlockFromISR(); return; case USB_EVENT_STALLED: return; diff --git a/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/usbcfg.c b/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/usbcfg.c index fa5b4f42..0ec1c62a 100644 --- a/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/usbcfg.c +++ b/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/usbcfg.c @@ -262,8 +262,6 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { extern SerialUSBDriver SDU1; switch (event) { - case USB_EVENT_RESET: - return; case USB_EVENT_ADDRESS: return; case USB_EVENT_CONFIGURED: @@ -280,6 +278,10 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { chSysUnlockFromISR(); return; + case USB_EVENT_RESET: + /* Falls into. */ + case USB_EVENT_UNCONFIGURED: + /* Falls into. */ case USB_EVENT_SUSPEND: chSysLockFromISR(); @@ -289,6 +291,12 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { chSysUnlockFromISR(); return; case USB_EVENT_WAKEUP: + chSysLockFromISR(); + + /* Disconnection event on suspend */ + sduWakeupHookI(&SDU1); + + chSysUnlockFromISR(); return; case USB_EVENT_STALLED: return; diff --git a/testhal/KINETIS/MCHCK/USB_SERIAL/usbcfg.c b/testhal/KINETIS/MCHCK/USB_SERIAL/usbcfg.c index fa5b4f42..0ec1c62a 100644 --- a/testhal/KINETIS/MCHCK/USB_SERIAL/usbcfg.c +++ b/testhal/KINETIS/MCHCK/USB_SERIAL/usbcfg.c @@ -262,8 +262,6 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { extern SerialUSBDriver SDU1; switch (event) { - case USB_EVENT_RESET: - return; case USB_EVENT_ADDRESS: return; case USB_EVENT_CONFIGURED: @@ -280,6 +278,10 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { chSysUnlockFromISR(); return; + case USB_EVENT_RESET: + /* Falls into. */ + case USB_EVENT_UNCONFIGURED: + /* Falls into. */ case USB_EVENT_SUSPEND: chSysLockFromISR(); @@ -289,6 +291,12 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { chSysUnlockFromISR(); return; case USB_EVENT_WAKEUP: + chSysLockFromISR(); + + /* Disconnection event on suspend */ + sduWakeupHookI(&SDU1); + + chSysUnlockFromISR(); return; case USB_EVENT_STALLED: return; diff --git a/testhal/KINETIS/TEENSY3_x/USB_SERIAL/usbcfg.c b/testhal/KINETIS/TEENSY3_x/USB_SERIAL/usbcfg.c index fa5b4f42..0ec1c62a 100644 --- a/testhal/KINETIS/TEENSY3_x/USB_SERIAL/usbcfg.c +++ b/testhal/KINETIS/TEENSY3_x/USB_SERIAL/usbcfg.c @@ -262,8 +262,6 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { extern SerialUSBDriver SDU1; switch (event) { - case USB_EVENT_RESET: - return; case USB_EVENT_ADDRESS: return; case USB_EVENT_CONFIGURED: @@ -280,6 +278,10 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { chSysUnlockFromISR(); return; + case USB_EVENT_RESET: + /* Falls into. */ + case USB_EVENT_UNCONFIGURED: + /* Falls into. */ case USB_EVENT_SUSPEND: chSysLockFromISR(); @@ -289,6 +291,12 @@ static void usb_event(USBDriver *usbp, usbevent_t event) { chSysUnlockFromISR(); return; case USB_EVENT_WAKEUP: + chSysLockFromISR(); + + /* Disconnection event on suspend */ + sduWakeupHookI(&SDU1); + + chSysUnlockFromISR(); return; case USB_EVENT_STALLED: return;