summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2013-08-13 09:44:16 -0600
committerGregory Nutt <gnutt@nuttx.org>2013-08-13 09:44:16 -0600
commit7412e0c395ffe89c5edd4ea1c775762fc3de42c2 (patch)
tree369983aeca5791a4d834fb189bb6c003f1d4da49
parent10d49e897e562c376fd053b7aaa44912bc32b771 (diff)
downloadnuttx-7412e0c395ffe89c5edd4ea1c775762fc3de42c2.tar.gz
nuttx-7412e0c395ffe89c5edd4ea1c775762fc3de42c2.tar.bz2
nuttx-7412e0c395ffe89c5edd4ea1c775762fc3de42c2.zip
SAMA5 OHCI: Fix some erors in the loop that waits for device connection changes
-rw-r--r--nuttx/arch/arm/src/sama5/sam_ohci.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/nuttx/arch/arm/src/sama5/sam_ohci.c b/nuttx/arch/arm/src/sama5/sam_ohci.c
index 937689f8b..d466f7648 100644
--- a/nuttx/arch/arm/src/sama5/sam_ohci.c
+++ b/nuttx/arch/arm/src/sama5/sam_ohci.c
@@ -1616,11 +1616,17 @@ static int sam_wait(FAR struct usbhost_driver_s *drvr, FAR const bool *connected
{
/* Has the connection state changed on the RH port? */
- while (priv->rhport[rhpndx].connected != connected[rhpndx])
+ if (priv->rhport[rhpndx].connected != connected[rhpndx])
{
- /* Yes.. break out and return the RH port number */
+ /* Yes.. Return the RH port number */
- break;
+ irqrestore(flags);
+
+ udbg("RHPort%d connected: %s\n",
+ rhpndx + 1,
+ priv->rhport[rhpndx].connected ? "YES" : "NO");
+
+ return rhpndx;
}
}
@@ -1631,13 +1637,6 @@ static int sam_wait(FAR struct usbhost_driver_s *drvr, FAR const bool *connected
priv->rhswait = true;
sam_takesem(&priv->rhssem);
}
-
- irqrestore(flags);
-
- udbg("RHPort%d connected: %s\n",
- rhpndx + 1, priv->rhport[rhpndx].connected ? "YES" : "NO");
-
- return rhpndx;
}
/*******************************************************************************