diff options
author | Gregory Nutt <gnutt@linux-qpx1.site> | 2013-12-08 08:51:19 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@linux-qpx1.site> | 2013-12-08 08:51:19 -0600 |
commit | 6461b78aaf24ba74ca7658e501eebe18a334b591 (patch) | |
tree | a5ce061aa1deab3c75a39954851ae7c3ba18945d /nuttx | |
parent | b55b8aa1fa19eea6b3684b76cf9c35f45de43f2b (diff) | |
download | px4-nuttx-6461b78aaf24ba74ca7658e501eebe18a334b591.tar.gz px4-nuttx-6461b78aaf24ba74ca7658e501eebe18a334b591.tar.bz2 px4-nuttx-6461b78aaf24ba74ca7658e501eebe18a334b591.zip |
A10: Correct handling of the serial busy interrupt
Diffstat (limited to 'nuttx')
-rw-r--r-- | nuttx/ChangeLog | 2 | ||||
-rw-r--r-- | nuttx/arch/arm/src/a1x/a1x_serial.c | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index cbf96864e..182d3d287 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -6381,4 +6381,6 @@ * arch/arm/src/armv7-a/arm_head.S and arm_pghead.S: Add more nop's after enabling the MMU. The cortex-a8 seems to need these (2014-1-7). + * arch/arm/src/a1x/a1x_serial.c: Correct handling of the BUSY + interrupt (2014-1-7). diff --git a/nuttx/arch/arm/src/a1x/a1x_serial.c b/nuttx/arch/arm/src/a1x/a1x_serial.c index 0864fb551..fd73ad34b 100644 --- a/nuttx/arch/arm/src/a1x/a1x_serial.c +++ b/nuttx/arch/arm/src/a1x/a1x_serial.c @@ -1176,11 +1176,22 @@ static int uart_interrupt(struct uart_dev_s *dev) /* Busy detect. Just ignore. Cleared by reading the status register */ case UART_IIR_IID_BUSY: + { + /* Read from the UART status register to clear the BUSY condition */ + + status = up_serialin(priv, A1X_UART_USR_OFFSET); break; + } - /* Otherwise, there is no (handled) interrupt pending */ + /* No further interrupts pending... return now */ case UART_IIR_IID_NONE: + { + return OK; + } + + /* Otherwise we have received an interrupt that we cannot handle */ + default: { lldbg("Unexpected IIR: %02x\n", status); |