From 61dfc26804aba33384ff57876f76b3f9031eb7c2 Mon Sep 17 00:00:00 2001 From: Diego Ismirlian Date: Sun, 19 Nov 2017 21:17:56 -0300 Subject: USBH: improve disconnection detection; added a necessary reschedule. --- os/hal/src/hal_usbh.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'os/hal') 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); } } -- cgit v1.2.3