diff options
| author | hathach <[email protected]> | 2019-11-27 23:20:48 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2019-11-27 23:20:48 +0700 |
| commit | 40b454cf28e5a86dac8d261f1276ace108446ffe (patch) | |
| tree | 32fa8ef83f18d9ccda49f76682334dac53634136 /src/device | |
| parent | 6225d5bcfdf3b416d2dd109e88b67bc4fcefe249 (diff) | |
get passed first get device descriptor
Diffstat (limited to 'src/device')
| -rw-r--r-- | src/device/usbd.c | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/src/device/usbd.c b/src/device/usbd.c index 1797dfafa..530eb09d1 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -830,19 +830,15 @@ void dcd_event_handler(dcd_event_t const * event, bool in_isr) {
switch (event->event_id)
{
- case DCD_EVENT_BUS_RESET:
- osal_queue_send(_usbd_q, event, in_isr);
- break;
-
case DCD_EVENT_UNPLUGGED:
- _usbd_dev.connected = 0;
+ _usbd_dev.connected = 0;
_usbd_dev.configured = 0;
- _usbd_dev.suspended = 0;
+ _usbd_dev.suspended = 0;
osal_queue_send(_usbd_q, event, in_isr);
break;
case DCD_EVENT_SOF:
- // nothing to do now
+ return; // skip SOF event for now
break;
case DCD_EVENT_SUSPEND:
@@ -857,6 +853,7 @@ void dcd_event_handler(dcd_event_t const * event, bool in_isr) break;
case DCD_EVENT_RESUME:
+ // skip event if not connected (especially required for SAMD)
if ( _usbd_dev.connected )
{
_usbd_dev.suspended = 0;
@@ -864,21 +861,9 @@ void dcd_event_handler(dcd_event_t const * event, bool in_isr) }
break;
- case DCD_EVENT_SETUP_RECEIVED:
- osal_queue_send(_usbd_q, event, in_isr);
- break;
-
- case DCD_EVENT_XFER_COMPLETE:
+ default:
osal_queue_send(_usbd_q, event, in_isr);
- TU_ASSERT(event->xfer_complete.result == XFER_RESULT_SUCCESS,);
break;
-
- // Not an DCD event, just a convenient way to defer ISR function should we need to
- case USBD_EVENT_FUNC_CALL:
- osal_queue_send(_usbd_q, event, in_isr);
- break;
-
- default: break;
}
}
|
