From 02c33f66c5a8be774034cd40e4125e9323c7b4d8 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 8 Apr 2015 15:04:10 -0600 Subject: SAM3/4 and SAMV7 UART: The IMR register is read-only. This means that sam_restoreints() does not actually re-enable UART interrupts. --- nuttx/arch/arm/src/sam34/sam_lowputc.c | 2 -- nuttx/arch/arm/src/sam34/sam_serial.c | 2 +- nuttx/arch/arm/src/samv7/sam_lowputc.c | 2 -- nuttx/arch/arm/src/samv7/sam_serial.c | 2 +- 4 files changed, 2 insertions(+), 6 deletions(-) diff --git a/nuttx/arch/arm/src/sam34/sam_lowputc.c b/nuttx/arch/arm/src/sam34/sam_lowputc.c index 9c7636c41..dbacb110d 100644 --- a/nuttx/arch/arm/src/sam34/sam_lowputc.c +++ b/nuttx/arch/arm/src/sam34/sam_lowputc.c @@ -299,8 +299,6 @@ void up_lowputc(char ch) /* Send the character */ putreg32((uint32_t)ch, SAM_CONSOLE_BASE + SAM_UART_THR_OFFSET); - irqrestore(flags); - return; } irqrestore(flags); diff --git a/nuttx/arch/arm/src/sam34/sam_serial.c b/nuttx/arch/arm/src/sam34/sam_serial.c index e2f2dfa57..b2f98a582 100644 --- a/nuttx/arch/arm/src/sam34/sam_serial.c +++ b/nuttx/arch/arm/src/sam34/sam_serial.c @@ -652,7 +652,7 @@ static inline void up_restoreusartint(struct up_dev_s *priv, uint32_t imr) { /* Restore the previous interrupt state */ - up_serialout(priv, SAM_UART_IMR_OFFSET, imr); + up_serialout(priv, SAM_UART_IER_OFFSET, imr); } /**************************************************************************** diff --git a/nuttx/arch/arm/src/samv7/sam_lowputc.c b/nuttx/arch/arm/src/samv7/sam_lowputc.c index b78a5f919..0c9b74baa 100644 --- a/nuttx/arch/arm/src/samv7/sam_lowputc.c +++ b/nuttx/arch/arm/src/samv7/sam_lowputc.c @@ -226,8 +226,6 @@ void up_lowputc(char ch) /* Send the character */ putreg32((uint32_t)ch, SAM_CONSOLE_BASE + SAM_UART_THR_OFFSET); - irqrestore(flags); - return; } irqrestore(flags); diff --git a/nuttx/arch/arm/src/samv7/sam_serial.c b/nuttx/arch/arm/src/samv7/sam_serial.c index 9618ee188..896fcd405 100644 --- a/nuttx/arch/arm/src/samv7/sam_serial.c +++ b/nuttx/arch/arm/src/samv7/sam_serial.c @@ -712,7 +712,7 @@ static inline void sam_restoreusartint(struct sam_dev_s *priv, uint32_t imr) { /* Restore the previous interrupt state */ - sam_serialout(priv, SAM_UART_IMR_OFFSET, imr); + sam_serialout(priv, SAM_UART_IER_OFFSET, imr); } /**************************************************************************** -- cgit v1.2.3