summaryrefslogtreecommitdiffstats
path: root/nuttx/arch/arm/src/dm320
diff options
context:
space:
mode:
authorpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2008-10-28 17:19:13 +0000
committerpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2008-10-28 17:19:13 +0000
commit8e06f0196ecd94af5f052027e5d15fa8ae0db794 (patch)
treeeb4d4c02ffef8b620dc5bf126f63fec5f5274c7a /nuttx/arch/arm/src/dm320
parentba245530fb9a74a074294dad3475e726d0737403 (diff)
Need to restart write queue after stalled endpoint resumed
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@1092 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'nuttx/arch/arm/src/dm320')
-rw-r--r--nuttx/arch/arm/src/dm320/dm320_usbdev.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/nuttx/arch/arm/src/dm320/dm320_usbdev.c b/nuttx/arch/arm/src/dm320/dm320_usbdev.c
index 0076f0067b..b77cf2317d 100644
--- a/nuttx/arch/arm/src/dm320/dm320_usbdev.c
+++ b/nuttx/arch/arm/src/dm320/dm320_usbdev.c
@@ -1294,6 +1294,10 @@ static inline void dm320_ep0setup(struct dm320_usbdev_s *priv)
(privep = dm320_epfindbyaddr(priv, index)) != NULL)
{
privep->halted = 0;
+
+ /* Restart the write queue */
+
+ (void)dm320_wrrequest(privep);
}
else
{
@@ -1595,7 +1599,7 @@ static int dm320_ctlrinterrupt(int irq, FAR void *context)
if (!dm320_rqempty(privep))
{
- dm320_wrrequest(privep);
+ (void)dm320_wrrequest(privep);
}
}
break;
@@ -2038,7 +2042,7 @@ static int dm320_epsubmit(FAR struct usbdev_ep_s *ep, FAR struct usbdev_req_s *r
{
usbtrace(TRACE_DEVERROR(DM320_TRACEERR_NULLPACKET), 0);
dm320_putreg8(dm320_getreg8(DM320_USB_PERTXCSR1) | USB_TXCSR1_TXPKTRDY, DM320_USB_PERTXCSR1);
- dm320_abortrequest(privep, req, OK);
+ dm320_abortrequest(privep, privreq, OK);
}
/* If we are stalled, then drop all requests on the floor */
@@ -2056,7 +2060,7 @@ static int dm320_epsubmit(FAR struct usbdev_ep_s *ep, FAR struct usbdev_req_s *r
/* Nothing to transfer -- exit success, with zero bytes transferred */
usbtrace(TRACE_COMPLETE(privep->epphy), privreq->req.xfrd);
- dm320_abortrequest(privep, req, OK);
+ dm320_abortrequest(privep, privreq, OK);
}
/* Handle IN (device-to-host) requests */