diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2008-10-28 17:19:13 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2008-10-28 17:19:13 +0000 |
commit | ebc1ad6b38a9f4427790c9ded5a4a81248c1d35d (patch) | |
tree | eb4d4c02ffef8b620dc5bf126f63fec5f5274c7a /nuttx/arch/arm/src/lpc214x | |
parent | f8c80edc454ccbce3679b0e16b1ead6f2312e9cb (diff) | |
download | px4-nuttx-ebc1ad6b38a9f4427790c9ded5a4a81248c1d35d.tar.gz px4-nuttx-ebc1ad6b38a9f4427790c9ded5a4a81248c1d35d.tar.bz2 px4-nuttx-ebc1ad6b38a9f4427790c9ded5a4a81248c1d35d.zip |
Need to restart write queue after stalled endpoint resumed
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1092 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/arm/src/lpc214x')
-rw-r--r-- | nuttx/arch/arm/src/lpc214x/lpc214x_usbdev.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/nuttx/arch/arm/src/lpc214x/lpc214x_usbdev.c b/nuttx/arch/arm/src/lpc214x/lpc214x_usbdev.c index e23da86cc..f4bd1bd13 100644 --- a/nuttx/arch/arm/src/lpc214x/lpc214x_usbdev.c +++ b/nuttx/arch/arm/src/lpc214x/lpc214x_usbdev.c @@ -2791,8 +2791,21 @@ static int lpc214x_epcancel(FAR struct usbdev_ep_s *ep, FAR struct usbdev_req_s static int lpc214x_epstall(FAR struct usbdev_ep_s *ep, boolean resume) { FAR struct lpc214x_ep_s *privep = (FAR struct lpc214x_ep_s *)ep; + irqstate_t flags; + + /* STALL or RESUME the endpoint */ + + flags = irqsave(); usbtrace(resume ? TRACE_EPRESUME : TRACE_EPSTALL, privep->epphy); lpc214x_usbcmd(CMD_USB_EP_SETSTATUS | privep->epphy, (resume ? 0 : USBDEV_EPSTALL)); + + /* If the endpoint of was resumed, then restart any queue write requests */ + + if (resume) + { + (void)lpc214x_wrrequest(privep); + } + irqrestore(flags); return OK; } |