I2C fixes from Uros; USB serial fix from Sheref; + A little more kernel mode stuff

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3479 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2011-04-07 21:22:06 +00:00
parent 9c87c9e93e
commit 0374d16b98
13 changed files with 172 additions and 84 deletions
+3 -31
View File
@@ -255,8 +255,7 @@ struct usbser_dev_s
uint8_t config; /* Configuration number */
uint8_t nwrq; /* Number of queue write requests (in reqlist)*/
uint8_t nrdq; /* Number of queue read requests (in epbulkout) */
uint8_t open : 1; /* 1: Driver has been opened */
uint8_t rxenabled : 1; /* 1: UART RX "interrupts" enabled */
bool rxenabled; /* true: UART RX "interrupts" enabled */
uint8_t linest[7]; /* Fake line status */
int16_t rxhead; /* Working head; used when rx int disabled */
@@ -1883,9 +1882,6 @@ static int usbser_setup(FAR struct uart_dev_s *dev)
return -ENOTCONN;
}
/* Mark the device as opened */
priv->open = 1;
return OK;
}
@@ -1903,9 +1899,6 @@ static int usbser_setup(FAR struct uart_dev_s *dev)
static void usbser_shutdown(FAR struct uart_dev_s *dev)
{
FAR struct usbser_dev_s *priv;
irqstate_t flags;
usbtrace(USBSER_CLASSAPI_SHUTDOWN, 0);
/* Sanity check */
@@ -1914,29 +1907,8 @@ static void usbser_shutdown(FAR struct uart_dev_s *dev)
if (!dev || !dev->priv)
{
usbtrace(TRACE_CLSERROR(USBSER_TRACEERR_INVALIDARG), 0);
return;
}
#endif
/* Extract reference to private data */
priv = (FAR struct usbser_dev_s*)dev->priv;
flags = irqsave();
#if CONFIG_DEBUG
if (!priv->open)
{
usbtrace(TRACE_CLSERROR(USBSER_TRACEERR_ALREADYCLOSED), 0);
irqrestore(flags);
return;
}
#endif
/* Make sure that we are disconnected from the host */
usbclass_resetconfig(priv);
priv->open = 0;
irqrestore(flags);
}
/****************************************************************************
@@ -2038,7 +2010,7 @@ static void usbser_rxint(FAR struct uart_dev_s *dev, bool enable)
/* RX "interrupts are no longer disabled */
priv->rxenabled = 1;
priv->rxenabled = true;
}
}
@@ -2057,7 +2029,7 @@ static void usbser_rxint(FAR struct uart_dev_s *dev, bool enable)
*/
priv->rxhead = serdev->recv.head;
priv->rxenabled = 0;
priv->rxenabled = false;
}
irqrestore(flags);
}