diff options
author | Jesse Gilles <jgilles@multitech.com> | 2013-03-05 11:31:09 -0600 |
---|---|---|
committer | Jesse Gilles <jgilles@multitech.com> | 2013-03-05 11:31:09 -0600 |
commit | e290881cff21b80cf89182e555d2d7f2ebd9fbde (patch) | |
tree | f9935d6bf666e37e2c701181c7d6ac1107a8c1f0 | |
parent | 093127cf7747136b7f083b926d4f090628c07c86 (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.
-rw-r--r-- | multitech/recipes/linux/linux-2.6.39.4/linux-2.6.39-at91-atmel-serial-uart0-rx-timer.patch | 36 | ||||
-rw-r--r-- | multitech/recipes/linux/linux_2.6.39.4.bb | 1 |
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 = " \ |