From 31acd6418f4b6d4018d74f94ad7c7fb43170d6f4 Mon Sep 17 00:00:00 2001 From: Jesse Gilles Date: Wed, 5 Jan 2011 12:04:38 -0600 Subject: linux-2.6.32: fix hardware flow control in atmel_serial * Fixes RTS/CTS flow control by reverting the following commit from linux-2.6: commit 8e706c4d0dab214c625a2df84a0ca69a76bae65d avr32: add hardware handshake support to atmel_serial --- .../linux-2.6.32.3-atmel_serial_disable_hwhs.patch | 32 ++++++++++++++++++++++ recipes/linux/linux_2.6.32.bb | 3 +- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 recipes/linux/linux-2.6.32/mtcdp/linux-2.6.32.3-atmel_serial_disable_hwhs.patch diff --git a/recipes/linux/linux-2.6.32/mtcdp/linux-2.6.32.3-atmel_serial_disable_hwhs.patch b/recipes/linux/linux-2.6.32/mtcdp/linux-2.6.32.3-atmel_serial_disable_hwhs.patch new file mode 100644 index 0000000000..bd620afb95 --- /dev/null +++ b/recipes/linux/linux-2.6.32/mtcdp/linux-2.6.32.3-atmel_serial_disable_hwhs.patch @@ -0,0 +1,32 @@ +Revert commit 8e706c4d0dab214c625a2df84a0ca69a76bae65d in linux-2.6: + avr32: add hardware handshake support to atmel_serial + +Reverting commit since it breaks hardware flow control for at91sam9g20 + +diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c +index 9d948bc..b659f2c 100644 +--- a/drivers/serial/atmel_serial.c ++++ b/drivers/serial/atmel_serial.c +@@ -1020,8 +1020,7 @@ static void atmel_set_termios(struct uart_port *port, struct ktermios *termios, + + /* Get current mode register */ + mode = UART_GET_MR(port) & ~(ATMEL_US_USCLKS | ATMEL_US_CHRL +- | ATMEL_US_NBSTOP | ATMEL_US_PAR +- | ATMEL_US_USMODE); ++ | ATMEL_US_NBSTOP | ATMEL_US_PAR); + + baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk / 16); + quot = uart_get_divisor(port, baud); +@@ -1066,12 +1065,6 @@ static void atmel_set_termios(struct uart_port *port, struct ktermios *termios, + } else + mode |= ATMEL_US_PAR_NONE; + +- /* hardware handshake (RTS/CTS) */ +- if (termios->c_cflag & CRTSCTS) +- mode |= ATMEL_US_USMODE_HWHS; +- else +- mode |= ATMEL_US_USMODE_NORMAL; +- + spin_lock_irqsave(&port->lock, flags); + + port->read_status_mask = ATMEL_US_OVRE; diff --git a/recipes/linux/linux_2.6.32.bb b/recipes/linux/linux_2.6.32.bb index 2971489308..2d26523684 100644 --- a/recipes/linux/linux_2.6.32.bb +++ b/recipes/linux/linux_2.6.32.bb @@ -1,6 +1,6 @@ require linux.inc -PR = "r7" +PR = "r8" S = "${WORKDIR}/linux-${PV}" @@ -37,6 +37,7 @@ SRC_URI_mtcdp = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2;n file://linux-2.6.32.3-at91_mci.patch;patch=1 \ file://linux-2.6.32.3-m25p80.patch;patch=1 \ file://linux-2.6.32.3-at25.patch;patch=1 \ + file://linux-2.6.32.3-atmel_serial_disable_hwhs.patch;patch=1 \ " SRC_URI[build.md5sum] = "6bd3c5fea1e88bb4d0948ec3688bd8f6" SRC_URI[build.sha256sum] = "e7526a7ae7210bc7c4f4837e9d8a666f9b126d59bee16015c41c5850d29c841f" -- cgit v1.2.3