From: Giulio Benetti <giulio.benetti@micronovasrl.com> To: unlisted-recipients:; (no To-header on input) Cc: matwey.kornilov@gmail.com, Giulio Benetti <giulio.benetti@micronovasrl.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Jiri Slaby <jslaby@suse.com>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Matthias Brugger <mbrugger@suse.com>, Kees Cook <keescook@chromium.org>, Sean Young <sean@mess.org>, Aaron Sierra <asierra@xes-inc.com>, Tomas Melin <tomas.melin@vaisala.com>, Sean Wang <sean.wang@mediatek.com>, Rafael Gago <rafael.gago@gmail.com>, Joel Stanley <joel@jms.id.au>, linux-serial@vger.kernel.org (open list:SERIAL DRIVERS), linux-kernel@vger.kernel.org (open list) Subject: [PATCH 3/4] serial: 8250: Make em485_rts_after_send() set mctrl according to rts state. Date: Wed, 6 Jun 2018 11:49:38 +0200 [thread overview] Message-ID: <20180606094942.71190-2-giulio.benetti@micronovasrl.com> (raw) In-Reply-To: <20180606094942.71190-1-giulio.benetti@micronovasrl.com> When rs485 enabled and RTS_AFTER_SEND set on startup, need to preserve mctrl status, because later functions will call set_mctrl passing port->mctrl=0 overriding rts status, resulting in rts pin in transmission when idle. Make mctrl reflect rts pin state. Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com> --- drivers/tty/serial/8250/8250_port.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index 95833cbc4338..c8c10b5ec6d6 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -562,10 +562,13 @@ static inline void serial8250_em485_rts_after_send(struct uart_8250_port *p) { unsigned char mcr = serial8250_in_MCR(p); - if (p->port.rs485.flags & SER_RS485_RTS_AFTER_SEND) + if (p->port.rs485.flags & SER_RS485_RTS_AFTER_SEND) { mcr |= UART_MCR_RTS; - else + p->port.mctrl |= TIOCM_RTS; + } else { mcr &= ~UART_MCR_RTS; + p->port.mctrl &= ~TIOCM_RTS; + } serial8250_out_MCR(p, mcr); } -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Giulio Benetti <giulio.benetti@micronovasrl.com> Cc: matwey.kornilov@gmail.com, Giulio Benetti <giulio.benetti@micronovasrl.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Jiri Slaby <jslaby@suse.com>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Matthias Brugger <mbrugger@suse.com>, Kees Cook <keescook@chromium.org>, Sean Young <sean@mess.org>, Aaron Sierra <asierra@xes-inc.com>, Tomas Melin <tomas.melin@vaisala.com>, Sean Wang <sean.wang@mediatek.com>, Rafael Gago <rafael.gago@gmail.com>, Joel Stanley <joel@jms.id.au>, "open list:SERIAL DRIVERS" <linux-serial@vger.kernel.org>, open list <linux-kernel@vger.kernel.org> Subject: [PATCH 3/4] serial: 8250: Make em485_rts_after_send() set mctrl according to rts state. Date: Wed, 6 Jun 2018 11:49:38 +0200 [thread overview] Message-ID: <20180606094942.71190-2-giulio.benetti@micronovasrl.com> (raw) In-Reply-To: <20180606094942.71190-1-giulio.benetti@micronovasrl.com> When rs485 enabled and RTS_AFTER_SEND set on startup, need to preserve mctrl status, because later functions will call set_mctrl passing port->mctrl=0 overriding rts status, resulting in rts pin in transmission when idle. Make mctrl reflect rts pin state. Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com> --- drivers/tty/serial/8250/8250_port.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index 95833cbc4338..c8c10b5ec6d6 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -562,10 +562,13 @@ static inline void serial8250_em485_rts_after_send(struct uart_8250_port *p) { unsigned char mcr = serial8250_in_MCR(p); - if (p->port.rs485.flags & SER_RS485_RTS_AFTER_SEND) + if (p->port.rs485.flags & SER_RS485_RTS_AFTER_SEND) { mcr |= UART_MCR_RTS; - else + p->port.mctrl |= TIOCM_RTS; + } else { mcr &= ~UART_MCR_RTS; + p->port.mctrl &= ~TIOCM_RTS; + } serial8250_out_MCR(p, mcr); } -- 2.17.1
next prev parent reply other threads:[~2018-06-06 9:50 UTC|newest] Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-06-01 12:40 [PATCH 0/8] serial: 8250: Add 485 emulation to 8250_dw Giulio Benetti 2018-06-01 12:40 ` [PATCH 1/8] serial: 8250_dw: add em485 support Giulio Benetti 2018-06-01 12:40 ` [PATCH 2/8] serial: 8250_dw: allow enable rs485 at boot time Giulio Benetti 2018-06-01 12:40 ` [PATCH 3/8] serial: 8250: Copy em485 from port to real port Giulio Benetti 2018-06-04 10:13 ` Andy Shevchenko 2018-06-04 10:52 ` Giulio Benetti 2018-06-01 12:40 ` [PATCH 4/8] serial: 8250: Handle case port doesn't have TEMT interrupt using em485 Giulio Benetti 2018-06-04 10:17 ` Andy Shevchenko 2018-06-04 10:50 ` Giulio Benetti 2018-06-04 11:38 ` Andy Shevchenko 2018-06-04 11:50 ` Giulio Benetti 2018-06-04 12:26 ` Andy Shevchenko 2018-06-04 17:40 ` Matwey V. Kornilov 2018-06-04 18:50 ` Giulio Benetti 2018-06-05 10:51 ` Matwey V. Kornilov 2018-06-06 9:36 ` Giulio Benetti 2018-06-06 9:49 ` [PATCH 2/4] serial: 8250: Copy mctrl when register port Giulio Benetti 2018-06-06 9:49 ` Giulio Benetti 2018-06-06 9:49 ` Giulio Benetti [this message] 2018-06-06 9:49 ` [PATCH 3/4] serial: 8250: Make em485_rts_after_send() set mctrl according to rts state Giulio Benetti 2018-06-06 12:02 ` Andy Shevchenko 2018-06-06 9:49 ` [PATCH 4/4] serial: core: Mask mctrl with TIOCM_RTS too if rs485 on and RTS_AFTER_SEND set Giulio Benetti 2018-06-06 9:49 ` Giulio Benetti 2018-06-06 12:03 ` Andy Shevchenko 2018-06-06 12:07 ` Giulio Benetti 2018-06-06 9:49 ` [PATCH 1/4] serial: 8250: Copy em485 from port to real port Giulio Benetti 2018-06-06 9:49 ` Giulio Benetti 2018-06-06 11:56 ` Andy Shevchenko 2018-06-06 12:15 ` Giulio Benetti 2018-06-06 13:11 ` Andy Shevchenko 2018-06-06 14:32 ` Giulio Benetti 2018-06-06 18:55 ` Matwey V. Kornilov 2018-06-06 19:15 ` Giulio Benetti 2018-06-07 7:03 ` Matwey V. Kornilov 2018-06-07 12:43 ` Giulio Benetti 2018-06-06 12:01 ` [PATCH 2/4] serial: 8250: Copy mctrl when register port Andy Shevchenko 2018-06-06 9:51 ` [PATCH 2/4] serial: 8250_dw: allow enable rs485 at boot time Giulio Benetti 2018-06-06 9:51 ` Giulio Benetti 2018-06-06 9:51 ` [PATCH 3/4] serial: 8250: Handle case port doesn't have TEMT interrupt using em485 Giulio Benetti 2018-06-06 9:51 ` Giulio Benetti 2018-06-13 16:59 ` Alan Cox 2018-06-13 16:59 ` Alan Cox 2018-06-06 9:51 ` [PATCH 4/4] serial: 8250_dw: treat rpm suspend with -EBUSY if RS485 ON and RTS_AFTER_SEND Giulio Benetti 2018-06-06 9:51 ` Giulio Benetti 2018-06-06 9:51 ` [PATCH 1/4] serial: 8250_dw: add em485 support Giulio Benetti 2018-06-06 9:51 ` Giulio Benetti 2018-06-06 16:51 ` Andy Shevchenko 2018-06-06 19:16 ` Giulio Benetti 2018-06-01 12:40 ` [PATCH 5/8] serial: 8250_dw: treat rpm suspend with -EBUSY if RS485 ON and RTS_AFTER_SEND Giulio Benetti 2018-06-01 12:40 ` [PATCH 6/8] serial: 8250: Copy mctrl when register port Giulio Benetti 2018-06-06 14:31 ` Aaron Sierra 2018-06-06 14:44 ` Giulio Benetti 2018-06-01 12:40 ` [PATCH 7/8] serial: 8250: Make em485_rts_after_send() set mctrl according to rts state Giulio Benetti 2018-06-01 12:40 ` [PATCH 8/8] serial: core: Mask mctrl with TIOCM_RTS too if rs485 on and RTS_AFTER_SEND set Giulio Benetti 2018-06-04 10:12 ` [PATCH 0/8] serial: 8250: Add 485 emulation to 8250_dw Andy Shevchenko 2018-06-04 10:34 ` Matwey V. Kornilov 2018-06-04 10:42 ` Giulio Benetti 2018-06-04 11:44 ` Andy Shevchenko 2018-06-04 14:58 ` Giulio Benetti
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180606094942.71190-2-giulio.benetti@micronovasrl.com \ --to=giulio.benetti@micronovasrl.com \ --cc=andriy.shevchenko@linux.intel.com \ --cc=asierra@xes-inc.com \ --cc=gregkh@linuxfoundation.org \ --cc=joel@jms.id.au \ --cc=jslaby@suse.com \ --cc=keescook@chromium.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-serial@vger.kernel.org \ --cc=matwey.kornilov@gmail.com \ --cc=mbrugger@suse.com \ --cc=rafael.gago@gmail.com \ --cc=sean.wang@mediatek.com \ --cc=sean@mess.org \ --cc=tomas.melin@vaisala.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.