You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.5 KiB
Diff
65 lines
2.5 KiB
Diff
From patchwork Fri Feb 7 09:53:35 2020
|
|
Content-Type: text/plain; charset="utf-8"
|
|
MIME-Version: 1.0
|
|
Content-Transfer-Encoding: 7bit
|
|
X-Patchwork-Submitter: Daniel Golle <daniel@makrotopia.org>
|
|
X-Patchwork-Id: 1190470
|
|
Date: Fri, 7 Feb 2020 11:53:35 +0200
|
|
From: Daniel Golle <daniel@makrotopia.org>
|
|
To: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org
|
|
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
|
|
Jiri Slaby <jslaby@suse.com>,
|
|
Chuanhong Guo <gch981213@gmail.com>,
|
|
Eitan Cohen <eitan@neot-semadar.com>,
|
|
Ori Gofen <origofen@gmail.com>
|
|
Subject: [PATCH] serial: ar933x_uart: set UART_CS_{RX,TX}_READY_ORIDE
|
|
Message-ID: <20200207095335.GA179836@makrotopia.org>
|
|
MIME-Version: 1.0
|
|
Content-Disposition: inline
|
|
Sender: linux-kernel-owner@vger.kernel.org
|
|
Precedence: bulk
|
|
List-ID: <linux-kernel.vger.kernel.org>
|
|
X-Mailing-List: linux-kernel@vger.kernel.org
|
|
|
|
On AR934x this UART is usually not initialized by the bootloader
|
|
as it is only used as a secondary serial port while the primary
|
|
UART is a newly introduced NS16550-compatible.
|
|
In order to make use of the ar933x-uart on AR934x without RTS/CTS
|
|
hardware flow control, one needs to set the
|
|
UART_CS_{RX,TX}_READY_ORIDE bits as other than on AR933x where this
|
|
UART is used as primary/console, the bootloader on AR934x typically
|
|
doesn't set those bits.
|
|
Setting them explicitely on AR933x should not do any harm, so just
|
|
set them unconditionally.
|
|
|
|
Tested-by: Chuanhong Guo <gch981213@gmail.com>
|
|
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|
---
|
|
drivers/tty/serial/ar933x_uart.c | 8 ++++++++
|
|
1 file changed, 8 insertions(+)
|
|
|
|
--- a/drivers/tty/serial/ar933x_uart.c
|
|
+++ b/drivers/tty/serial/ar933x_uart.c
|
|
@@ -290,6 +290,10 @@ static void ar933x_uart_set_termios(stru
|
|
ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
|
|
AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE);
|
|
|
|
+ /* enable RX and TX ready overide */
|
|
+ ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
|
|
+ AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE);
|
|
+
|
|
/* reenable the UART */
|
|
ar933x_uart_rmw(up, AR933X_UART_CS_REG,
|
|
AR933X_UART_CS_IF_MODE_M << AR933X_UART_CS_IF_MODE_S,
|
|
@@ -424,6 +428,10 @@ static int ar933x_uart_startup(struct ua
|
|
|
|
/* enable RX and TX ready overide */
|
|
ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
|
|
+ AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE);
|
|
+
|
|
+ /* enable RX and TX ready overide */
|
|
+ ar933x_uart_rmw_set(up, AR933X_UART_CS_REG,
|
|
AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE);
|
|
|
|
/* Enable RX interrupts */
|