aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/ports/STM32
diff options
context:
space:
mode:
authorDiego Ismirlian <dismirlian (at) google's mail.com>2017-07-16 20:01:50 -0300
committerDiego Ismirlian <dismirlian (at) google's mail.com>2017-07-16 20:01:50 -0300
commitdee22cee18dd98502b19e41e45503f8c20f447d6 (patch)
treed077ac7d6e50dad2fc7ca3909f1d2c9451031e99 /os/hal/ports/STM32
parentce8f18291fb45048685be52bcff5088b14a6823c (diff)
downloadChibiOS-Contrib-dee22cee18dd98502b19e41e45503f8c20f447d6.tar.gz
ChibiOS-Contrib-dee22cee18dd98502b19e41e45503f8c20f447d6.tar.bz2
ChibiOS-Contrib-dee22cee18dd98502b19e41e45503f8c20f447d6.zip
USBH: remove unnecessary reschedules and add necessary ones
Diffstat (limited to 'os/hal/ports/STM32')
-rw-r--r--os/hal/ports/STM32/LLD/USBHv1/hal_usbh_lld.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/os/hal/ports/STM32/LLD/USBHv1/hal_usbh_lld.c b/os/hal/ports/STM32/LLD/USBHv1/hal_usbh_lld.c
index 850f9ed..3a581f5 100644
--- a/os/hal/ports/STM32/LLD/USBHv1/hal_usbh_lld.c
+++ b/os/hal/ports/STM32/LLD/USBHv1/hal_usbh_lld.c
@@ -602,7 +602,6 @@ void usbh_lld_ep_object_init(usbh_ep_t *ep) {
void usbh_lld_ep_open(usbh_ep_t *ep) {
uinfof("\t%s: Open EP", ep->name);
ep->status = USBH_EPSTATUS_OPEN;
- osalOsRescheduleS();
}
void usbh_lld_ep_close(usbh_ep_t *ep) {
@@ -614,7 +613,6 @@ void usbh_lld_ep_close(usbh_ep_t *ep) {
}
uinfof("\t%s: Closed", ep->name);
ep->status = USBH_EPSTATUS_CLOSED;
- osalOsRescheduleS();
}
bool usbh_lld_ep_reset(usbh_ep_t *ep) {
@@ -643,6 +641,7 @@ void usbh_lld_urb_submit(usbh_urb_t *urb) {
}
}
+/* usbh_lld_urb_abort may require a reschedule if called from a S-locked state */
bool usbh_lld_urb_abort(usbh_urb_t *urb, usbh_urbstatus_t status) {
osalDbgCheck(usbhURBIsBusy(urb));
@@ -1594,7 +1593,6 @@ usbh_urbstatus_t usbh_lld_root_hub_request(USBHDriver *usbh, uint8_t bmRequestTy
osalDbgAssert(0, "invalid wvalue");
break;
}
- osalOsRescheduleS();
osalSysUnlock();
break;
@@ -1623,7 +1621,6 @@ usbh_urbstatus_t usbh_lld_root_hub_request(USBHDriver *usbh, uint8_t bmRequestTy
osalDbgCheck(wlength >= 4);
osalSysLock();
*(uint32_t *)buf = usbh->rootport.lld_status | (usbh->rootport.lld_c_status << 16);
- osalOsRescheduleS();
osalSysUnlock();
break;
@@ -1653,7 +1650,6 @@ usbh_urbstatus_t usbh_lld_root_hub_request(USBHDriver *usbh, uint8_t bmRequestTy
osalThreadSleepS(MS2ST(60));
otg->HPRT = hprt;
usbh->rootport.lld_c_status |= USBH_PORTSTATUS_C_RESET;
- osalOsRescheduleS();
osalSysUnlock();
} break;
@@ -1678,11 +1674,9 @@ usbh_urbstatus_t usbh_lld_root_hub_request(USBHDriver *usbh, uint8_t bmRequestTy
uint8_t usbh_lld_roothub_get_statuschange_bitmap(USBHDriver *usbh) {
osalSysLock();
if (usbh->rootport.lld_c_status) {
- osalOsRescheduleS();
osalSysUnlock();
return 1 << 1;
}
- osalOsRescheduleS();
osalSysUnlock();
return 0;
}