summaryrefslogtreecommitdiff
path: root/recipes/linux/linux-2.6.18/fix-usart3-rx-BUG.patch
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/linux/linux-2.6.18/fix-usart3-rx-BUG.patch
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/linux/linux-2.6.18/fix-usart3-rx-BUG.patch')
-rw-r--r--recipes/linux/linux-2.6.18/fix-usart3-rx-BUG.patch25
1 files changed, 25 insertions, 0 deletions
diff --git a/recipes/linux/linux-2.6.18/fix-usart3-rx-BUG.patch b/recipes/linux/linux-2.6.18/fix-usart3-rx-BUG.patch
new file mode 100644
index 0000000000..1035f9f010
--- /dev/null
+++ b/recipes/linux/linux-2.6.18/fix-usart3-rx-BUG.patch
@@ -0,0 +1,25 @@
+---
+ drivers/serial/atmel_usart.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+Index: linux-2.6.18-avr32/drivers/serial/atmel_usart.c
+===================================================================
+--- linux-2.6.18-avr32.orig/drivers/serial/atmel_usart.c 2006-11-24 15:59:38.000000000 +0100
++++ linux-2.6.18-avr32/drivers/serial/atmel_usart.c 2006-11-24 15:59:46.000000000 +0100
+@@ -194,8 +194,14 @@ static inline int rx_dma_update_tail(str
+ usart3_writel(up, RNCR, RX_BUFFER_SIZE);
+
+ again = 1;
+- } else
+- BUG_ON(usart3_readl(up, CSR) & USART3_BIT(ENDRX));
++ } else if(usart3_readl(up, CSR) & USART3_BIT(ENDRX)) {
++ /*
++ * The USART hit the end of the buffer after head was
++ * updated. Let's do another pass so that we can
++ * avoid taking another interrupt immediately.
++ */
++ again = 1;
++ }
+
+ up->rx_tail = tail;
+