aboutsummaryrefslogtreecommitdiffstats
path: root/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c
diff options
context:
space:
mode:
Diffstat (limited to 'testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c')
-rw-r--r--testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c b/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c
index 24a732f..5c47795 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,15 +278,25 @@ 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();
/* Disconnection event on suspend.*/
- sduDisconnectI(&SDU1);
+ sduSuspendHookI(&SDU1);
chSysUnlockFromISR();
return;
case USB_EVENT_WAKEUP:
+ chSysLockFromISR();
+
+ /* Disconnection event on suspend */
+ sduWakeupHookI(&SDU1);
+
+ chSysUnlockFromISR();
return;
case USB_EVENT_STALLED:
return;