Fix STM32 USB overrun problem (again, still)

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4199 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2011-12-18 13:53:58 +00:00
parent 643328e015
commit b40ed6317f
2 changed files with 195 additions and 54 deletions

237
TODO

File diff suppressed because it is too large Load Diff

View File

@ -1085,8 +1085,7 @@ static struct stm32_req_s *stm32_rqdequeue(struct stm32_ep_s *privep)
* Name: stm32_rqenqueue
****************************************************************************/
static void stm32_rqenqueue(struct stm32_ep_s *privep,
struct stm32_req_s *req)
static void stm32_rqenqueue(struct stm32_ep_s *privep, struct stm32_req_s *req)
{
req->flink = NULL;
if (!privep->head)
@ -1446,7 +1445,10 @@ static void stm32_epdone(struct stm32_usbdev_s *priv, uint8_t epno)
priv->rxstatus = USB_EPR_STATRX_VALID;
}
else
/* NAK further OUT packets if there there no more read requests */
if (stm32_rqempty(privep))
{
usbtrace(TRACE_INTDECODE(STM32_TRACEINTID_EPOUTPENDING), (uint16_t)epno);