diff options
author | Diego Ismirlian <dismirlian (at) google's mail.com> | 2017-11-19 21:17:56 -0300 |
---|---|---|
committer | Diego Ismirlian <dismirlian (at) google's mail.com> | 2017-11-19 21:17:56 -0300 |
commit | 61dfc26804aba33384ff57876f76b3f9031eb7c2 (patch) | |
tree | 89a29deda23a41ccb5d9ea2bde5d1ce3cf76e181 /os/hal/src | |
parent | f4cf7e5591c47b978d2141486fe7f98400c3c5bc (diff) | |
download | ChibiOS-Contrib-61dfc26804aba33384ff57876f76b3f9031eb7c2.tar.gz ChibiOS-Contrib-61dfc26804aba33384ff57876f76b3f9031eb7c2.tar.bz2 ChibiOS-Contrib-61dfc26804aba33384ff57876f76b3f9031eb7c2.zip |
USBH: improve disconnection detection; added a necessary reschedule.
Diffstat (limited to 'os/hal/src')
-rw-r--r-- | os/hal/src/hal_usbh.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/os/hal/src/hal_usbh.c b/os/hal/src/hal_usbh.c index f9f4687..78ac837 100644 --- a/os/hal/src/hal_usbh.c +++ b/os/hal/src/hal_usbh.c @@ -302,6 +302,7 @@ msg_t usbhURBSubmitAndWaitS(usbh_urb_t *urb, systime_t timeout) { _check_urb(urb); usbhURBSubmitI(urb); + osalOsRescheduleS(); /* This call is necessary because usbhURBSubmitI may require a reschedule */ ret = usbhURBWaitTimeoutS(urb, timeout); if (ret == MSG_TIMEOUT) _usbh_urb_abort_and_waitS(urb, USBH_URBSTATUS_TIMEOUT); @@ -859,9 +860,7 @@ static void _port_process_status_change(usbh_port_t *port) { usbhhubClearFeaturePort(port, USBH_PORT_FEAT_C_CONNECTION); if (port->device.status != USBH_DEVSTATUS_DISCONNECTED) { - if (!(port->status & USBH_PORTSTATUS_CONNECTION)) { - _usbh_port_disconnected(port); - } + _usbh_port_disconnected(port); } } |