From b403f064d4a33c0da1e7c6b258700e1451373db0 Mon Sep 17 00:00:00 2001 From: funnydog Date: Tue, 13 Dec 2016 07:54:25 +0100 Subject: testhal: add missing sduWakeupHookI() call to KINETIS usb_serial demos Add the missing call to sduWakeupHookI() to the USB_EVENT_WAKEUP event, with proper locking around them. --- testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c | 6 ++++++ testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/usbcfg.c | 6 ++++++ testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/usbcfg.c | 6 ++++++ testhal/KINETIS/MCHCK/USB_SERIAL/usbcfg.c | 6 ++++++ testhal/KINETIS/TEENSY3_x/USB_SERIAL/usbcfg.c | 6 ++++++ 5 files changed, 30 insertions(+) diff --git a/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c b/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c index 96bfdba..750f5ca 100644 --- a/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c +++ b/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c @@ -289,6 +289,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_SERIAL/usbcfg.c b/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/usbcfg.c index fa5b4f4..557d139 100644 --- a/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/usbcfg.c +++ b/testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/usbcfg.c @@ -289,6 +289,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 fa5b4f4..557d139 100644 --- a/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/usbcfg.c +++ b/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/usbcfg.c @@ -289,6 +289,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 fa5b4f4..557d139 100644 --- a/testhal/KINETIS/MCHCK/USB_SERIAL/usbcfg.c +++ b/testhal/KINETIS/MCHCK/USB_SERIAL/usbcfg.c @@ -289,6 +289,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 fa5b4f4..557d139 100644 --- a/testhal/KINETIS/TEENSY3_x/USB_SERIAL/usbcfg.c +++ b/testhal/KINETIS/TEENSY3_x/USB_SERIAL/usbcfg.c @@ -289,6 +289,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; -- cgit v1.2.3 From dc478a551138b03c73997d091180cf15eb4afb57 Mon Sep 17 00:00:00 2001 From: funnydog Date: Tue, 13 Dec 2016 08:03:55 +0100 Subject: testhal: handle USB_EVENT_(RESET|UNCONFIGURED) in KINETIS demos Handle the USB_EVENT_RESET and USB_EVENT_UNCONFIGURED as they were USB_EVENT_SUSPEND like in STM32 demos. --- testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c | 6 ++++-- testhal/KINETIS/FRDM-KL25Z/USB_HID/usbcfg.c | 2 ++ testhal/KINETIS/FRDM-KL25Z/USB_SERIAL/usbcfg.c | 6 ++++-- testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/usbcfg.c | 6 ++++-- testhal/KINETIS/MCHCK/USB_SERIAL/usbcfg.c | 6 ++++-- testhal/KINETIS/TEENSY3_x/USB_SERIAL/usbcfg.c | 6 ++++-- 6 files changed, 22 insertions(+), 10 deletions(-) diff --git a/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c b/testhal/KINETIS/FRDM-K20D50M/USB_SERIAL/usbcfg.c index 750f5ca..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,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(); diff --git a/testhal/KINETIS/FRDM-KL25Z/USB_HID/usbcfg.c b/testhal/KINETIS/FRDM-KL25Z/USB_HID/usbcfg.c index 30944b5..1f04a4c 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 557d139..0ec1c62 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(); diff --git a/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/usbcfg.c b/testhal/KINETIS/FRDM-KL26Z/USB_SERIAL/usbcfg.c index 557d139..0ec1c62 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(); diff --git a/testhal/KINETIS/MCHCK/USB_SERIAL/usbcfg.c b/testhal/KINETIS/MCHCK/USB_SERIAL/usbcfg.c index 557d139..0ec1c62 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(); diff --git a/testhal/KINETIS/TEENSY3_x/USB_SERIAL/usbcfg.c b/testhal/KINETIS/TEENSY3_x/USB_SERIAL/usbcfg.c index 557d139..0ec1c62 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(); -- cgit v1.2.3