From 108ae2534cf5e487b569ea34bdae4e86b9c2d024 Mon Sep 17 00:00:00 2001 From: Diego Ismirlian Date: Tue, 6 Jun 2017 09:23:07 -0300 Subject: Fixed endpoint halt reset implementation --- os/hal/src/hal_usbh.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'os/hal/src/hal_usbh.c') diff --git a/os/hal/src/hal_usbh.c b/os/hal/src/hal_usbh.c index 80180d6..11add0d 100644 --- a/os/hal/src/hal_usbh.c +++ b/os/hal/src/hal_usbh.c @@ -195,8 +195,7 @@ static void _ep0_object_init(usbh_device_t *dev, uint16_t wMaxPacketSize) { usbhEPSetName(&dev->ctrl, "DEV[CTRL]"); } -bool usbhEPResetS(usbh_ep_t *ep) { - osalDbgCheckClassS(); +bool usbhEPReset(usbh_ep_t *ep) { osalDbgCheck(ep != NULL); osalDbgAssert((ep->status == USBH_EPSTATUS_OPEN) || (ep->status == USBH_EPSTATUS_HALTED), "invalid state"); osalDbgAssert(ep->type != USBH_EPTYPE_CTRL, "don't need to reset control endpoint"); @@ -206,9 +205,12 @@ bool usbhEPResetS(usbh_ep_t *ep) { 0, 0); /* TODO: GET_STATUS to see if endpoint is still halted */ + osalSysLock(); if ((ret == USBH_URBSTATUS_OK) && usbh_lld_ep_reset(ep)) { + osalSysUnlock(); return HAL_SUCCESS; } + osalSysUnlock(); return HAL_FAILED; } -- cgit v1.2.3