diff options
author | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2011-05-12 23:51:04 +0000 |
---|---|---|
committer | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2011-05-12 23:51:04 +0000 |
commit | 9912ce76d0e44edc762051ef54cef83b7cc20611 (patch) | |
tree | 4cdf692110e72d81ef22b2a1af582ae99d65a563 | |
parent | 387cdc646714b922864dbc02d66008aac98dd027 (diff) |
Fix com.c logic error
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@3600 7fd9a85b-ad96-42d3-883c-3090e2eb8679
-rw-r--r-- | nuttx/arch/rgmp/src/com.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/nuttx/arch/rgmp/src/com.c b/nuttx/arch/rgmp/src/com.c index 7f3f5028e5..e1b8febb2a 100644 --- a/nuttx/arch/rgmp/src/com.c +++ b/nuttx/arch/rgmp/src/com.c @@ -485,11 +485,14 @@ static void up_txint(struct uart_dev_s *dev, bool enable) { struct up_dev_s *priv = (struct up_dev_s*)dev->priv; uint16_t base = priv->base; + irqstate_t flags; uint8_t ier; + flags = irqsave(); ier = inb(base+COM_IER); if (enable) { ier |= COM_IER_TEI; + outb(base+COM_IER, ier); /* Fake a TX interrupt here by just calling uart_xmitchars() with * interrupts disabled (note this may recurse). @@ -499,8 +502,9 @@ static void up_txint(struct uart_dev_s *dev, bool enable) } else { ier &= ~COM_IER_TEI; + outb(base+COM_IER, ier); } - outb(base+COM_IER, ier); + irqrestore(flags); } /**************************************************************************** |