linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johan Hovold <johan@kernel.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jirislaby@kernel.org>,
	"Mychaela N . Falconia" <falcon@freecalypso.org>,
	linux-serial@vger.kernel.org, linux-usb@vger.kernel.org,
	linux-kernel@vger.kernel.org, Johan Hovold <johan@kernel.org>
Subject: [PATCH v2 3/7] tty: add port flag to suppress ready signalling on open
Date: Wed,  2 Dec 2020 12:39:38 +0100	[thread overview]
Message-ID: <20201202113942.27024-4-johan@kernel.org> (raw)
In-Reply-To: <20201202113942.27024-1-johan@kernel.org>

Add a NORDY port flag to suppress raising the modem-control lines on
open to signal DTE readiness.

This can be used to implement a NORDY termios control flag to complement
HUPCL, which controls lowering of the modem-control lines on final
close.

Initially drivers can export the flag through sysfs, which also allows
control over the lines on first open.

This can be used to prevent undesirable side-effects on open for
applications where the DTR and RTS lines are used for non-standard
purposes such as generating power-on and reset pulses.

Reviewed-by: Mychaela N. Falconia <falcon@freecalypso.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/tty/tty_port.c |  2 +-
 include/linux/tty.h    | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c
index ea80bf872f54..2613debc1d06 100644
--- a/drivers/tty/tty_port.c
+++ b/drivers/tty/tty_port.c
@@ -415,7 +415,7 @@ EXPORT_SYMBOL(tty_port_carrier_raised);
  */
 void tty_port_raise_dtr_rts(struct tty_port *port)
 {
-	if (port->ops->dtr_rts)
+	if (port->ops->dtr_rts && !tty_port_nordy(port))
 		port->ops->dtr_rts(port, 1);
 }
 EXPORT_SYMBOL(tty_port_raise_dtr_rts);
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 3ebeb7fbe332..05bec5837b51 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -267,6 +267,7 @@ struct tty_port {
 #define TTY_PORT_CHECK_CD	4	/* carrier detect enabled */
 #define TTY_PORT_KOPENED	5	/* device exclusively opened by
 					   kernel */
+#define TTY_PORT_NORDY		6	/* do not raise DTR/RTS on open */
 
 /*
  * Where all of the state associated with a tty is kept while the tty
@@ -665,6 +666,16 @@ static inline void tty_port_set_kopened(struct tty_port *port, bool val)
 	assign_bit(TTY_PORT_KOPENED, &port->iflags, val);
 }
 
+static inline bool tty_port_nordy(const struct tty_port *port)
+{
+	return test_bit(TTY_PORT_NORDY, &port->iflags);
+}
+
+static inline void tty_port_set_nordy(struct tty_port *port, bool val)
+{
+	assign_bit(TTY_PORT_NORDY, &port->iflags, val);
+}
+
 extern struct tty_struct *tty_port_tty_get(struct tty_port *port);
 extern void tty_port_tty_set(struct tty_port *port, struct tty_struct *tty);
 extern int tty_port_carrier_raised(struct tty_port *port);
-- 
2.26.2


  parent reply	other threads:[~2020-12-02 11:41 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-02 11:39 [PATCH v2 0/7] tty: add flag to suppress ready signalling on open Johan Hovold
2020-12-02 11:39 ` [PATCH v2 1/7] tty: use assign_bit() in port-flag accessors Johan Hovold
2020-12-02 11:39 ` [PATCH v2 2/7] tty: use const parameters " Johan Hovold
2020-12-02 11:39 ` Johan Hovold [this message]
2020-12-02 11:39 ` [PATCH v2 4/7] serial: core: add sysfs attribute to suppress ready signalling on open Johan Hovold
2020-12-02 11:39 ` [PATCH v2 5/7] USB: serial: " Johan Hovold
2020-12-02 11:39 ` [PATCH v2 6/7] USB: serial: ftdi_sio: pass port to quirk port_probe functions Johan Hovold
2020-12-02 11:39 ` [PATCH v2 7/7] USB: serial: ftdi_sio: add support for FreeCalypso DUART28C adapter Johan Hovold
2020-12-02 18:07 ` [PATCH v2 0/7] tty: add flag to suppress ready signalling on open Mychaela Falconia
2020-12-03  9:21   ` Johan Hovold
2020-12-09 14:30 ` Greg Kroah-Hartman
2020-12-09 15:10   ` Johan Hovold
2020-12-09 22:49   ` Mychaela Falconia
2020-12-10  9:06     ` Greg Kroah-Hartman
2020-12-10 10:41     ` Maarten Brock
2020-12-10 10:50       ` Greg Kroah-Hartman
2020-12-10 12:05         ` Maarten Brock
2020-12-10 13:01           ` Greg Kroah-Hartman
2020-12-10 18:59             ` Mychaela Falconia
2020-12-11  8:46               ` Jiri Slaby
2020-12-11 16:08                 ` Greg Kroah-Hartman
2020-12-11 15:51               ` Maarten Brock
2020-12-11 16:08               ` Greg Kroah-Hartman
2020-12-14 14:21               ` Johan Hovold
2020-12-18 18:03                 ` Mychaela Falconia
2021-01-07 15:25                   ` Greg Kroah-Hartman
     [not found]                   ` <YBPxG+i/ZLP8/wg1@hovoldconsulting.com>
2021-01-31  0:18                     ` Mychaela Falconia
2021-01-31  5:24                       ` Greg Kroah-Hartman
2020-12-11 10:46             ` Johan Hovold
2020-12-11 10:41       ` Johan Hovold

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=20201202113942.27024-4-johan@kernel.org \
    --to=johan@kernel.org \
    --cc=falcon@freecalypso.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jirislaby@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).