summaryrefslogtreecommitdiff
path: root/multitech/recipes/linux
diff options
context:
space:
mode:
authorJesse Gilles <jgilles@multitech.com>2013-03-05 11:31:09 -0600
committerJesse Gilles <jgilles@multitech.com>2013-03-05 11:31:09 -0600
commite290881cff21b80cf89182e555d2d7f2ebd9fbde (patch)
treef9935d6bf666e37e2c701181c7d6ac1107a8c1f0 /multitech/recipes/linux
parent093127cf7747136b7f083b926d4f090628c07c86 (diff)
linux-2.6.39.4: mtocgd3: add linux-2.6.39-at91-atmel-serial-uart0-rx-timer.patch
UART0,1 don't support RX timeout interrupts, this fixes delays reading from the GPS receiver.
Diffstat (limited to 'multitech/recipes/linux')
-rw-r--r--multitech/recipes/linux/linux-2.6.39.4/linux-2.6.39-at91-atmel-serial-uart0-rx-timer.patch36
-rw-r--r--multitech/recipes/linux/linux_2.6.39.4.bb1
2 files changed, 37 insertions, 0 deletions
diff --git a/multitech/recipes/linux/linux-2.6.39.4/linux-2.6.39-at91-atmel-serial-uart0-rx-timer.patch b/multitech/recipes/linux/linux-2.6.39.4/linux-2.6.39-at91-atmel-serial-uart0-rx-timer.patch
new file mode 100644
index 0000000..e482c78
--- /dev/null
+++ b/multitech/recipes/linux/linux-2.6.39.4/linux-2.6.39-at91-atmel-serial-uart0-rx-timer.patch
@@ -0,0 +1,36 @@
+Index: linux-2.6.39.4/drivers/tty/serial/atmel_serial.c
+===================================================================
+--- linux-2.6.39.4.orig/drivers/tty/serial/atmel_serial.c 2013-03-05 11:13:21.334104152 -0600
++++ linux-2.6.39.4/drivers/tty/serial/atmel_serial.c 2013-03-05 11:13:42.299860530 -0600
+@@ -1510,7 +1510,14 @@
+ UART_PUT_PTCR(port, ATMEL_PDC_RXTEN);
+ } else if (atmel_use_dma_rx(port)) {
+ /* set UART timeout */
++#ifdef CONFIG_ARCH_AT91SAM9X5
++ /* DBGU, UART0, UART1 don't support RX TIMEOUT */
++ if (port->line == 0 ||
++ port->mapbase == AT91SAM9X5_BASE_UART0 ||
++ port->mapbase == AT91SAM9X5_BASE_UART1) {
++#else
+ if (port->line == 0) {
++#endif
+ setup_timer(&atmel_port->uart_timer,
+ atmel_uart_timer_callback,
+ (unsigned long)port);
+@@ -1585,8 +1592,15 @@
+
+ if (atmel_use_dma_rx(port)) {
+ atmel_rx_dma_release(atmel_port);
+- if (port->line == 0)
++#ifdef CONFIG_ARCH_AT91SAM9X5
++ if (port->line == 0 ||
++ port->mapbase == AT91SAM9X5_BASE_UART0 ||
++ port->mapbase == AT91SAM9X5_BASE_UART1) {
++#else
++ if (port->line == 0) {
++#endif
+ del_timer_sync(&atmel_port->uart_timer);
++ }
+ }
+ if (atmel_use_dma_tx(port))
+ atmel_tx_dma_release(atmel_port);
diff --git a/multitech/recipes/linux/linux_2.6.39.4.bb b/multitech/recipes/linux/linux_2.6.39.4.bb
index fa39c26..0bb15e2 100644
--- a/multitech/recipes/linux/linux_2.6.39.4.bb
+++ b/multitech/recipes/linux/linux_2.6.39.4.bb
@@ -134,6 +134,7 @@ AT91SAM9X5_PATCHES = " \
file://9x5_pmecc_2639/0007-atmel_nand-pass-the-pmecc-parameter-from-board-file-.patch \
file://9x5_pmecc_2639/0008-atmel_nand-9x5ek-enable-PMECC-in-9x5ek-board.patch \
file://9x5_pmecc_2639/0009-atmel_nand-enable-dma-for-9x5ek.patch \
+ file://linux-2.6.39-at91-atmel-serial-uart0-rx-timer.patch \
"
SRC_URI_append_mtocgd3 = " \