All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: linux-serial@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, tony@atomide.com,
	balbi@ti.com, gregkh@linuxfoundation.org,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Subject: [PATCH 01/16] tty: serial: 8250_core: allow to set ->throttle / ->unthrottle callbacks
Date: Wed, 10 Sep 2014 21:29:56 +0200	[thread overview]
Message-ID: <1410377411-26656-2-git-send-email-bigeasy@linutronix.de> (raw)
In-Reply-To: <1410377411-26656-1-git-send-email-bigeasy@linutronix.de>

The OMAP UART provides support for HW assisted flow control. What is
missing is the support to throttle / unthrottle callbacks which are used
by the omap-serial driver at the moment.
This patch adds the callbacks. It should be safe to add them since they
are only invoked from the serial_core (uart_throttle()) if the feature
flags are set.

Reviewed-by: Tony Lindgren <tony@atomide.com>
Tested-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 drivers/tty/serial/8250/8250_core.c | 14 ++++++++++++++
 include/linux/serial_core.h         |  2 ++
 2 files changed, 16 insertions(+)

diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
index a0c1d64f34c5..68c44d97091b 100644
--- a/drivers/tty/serial/8250/8250_core.c
+++ b/drivers/tty/serial/8250/8250_core.c
@@ -1319,6 +1319,16 @@ static void serial8250_start_tx(struct uart_port *port)
 	}
 }
 
+static void serial8250_throttle(struct uart_port *port)
+{
+	port->throttle(port);
+}
+
+static void serial8250_unthrottle(struct uart_port *port)
+{
+	port->unthrottle(port);
+}
+
 static void serial8250_stop_rx(struct uart_port *port)
 {
 	struct uart_8250_port *up = up_to_u8250p(port);
@@ -2912,6 +2922,8 @@ static struct uart_ops serial8250_pops = {
 	.get_mctrl	= serial8250_get_mctrl,
 	.stop_tx	= serial8250_stop_tx,
 	.start_tx	= serial8250_start_tx,
+	.throttle	= serial8250_throttle,
+	.unthrottle	= serial8250_unthrottle,
 	.stop_rx	= serial8250_stop_rx,
 	.enable_ms	= serial8250_enable_ms,
 	.break_ctl	= serial8250_break_ctl,
@@ -3462,6 +3474,8 @@ int serial8250_register_8250_port(struct uart_8250_port *up)
 		uart->capabilities	= up->capabilities;
 		uart->rs485_config	= up->rs485_config;
 		uart->rs485		= up->rs485;
+		uart->port.throttle	= up->port.throttle;
+		uart->port.unthrottle	= up->port.unthrottle;
 
 		/* Take tx_loadsz from fifosize if it wasn't set separately */
 		if (uart->port.fifosize && !uart->tx_loadsz)
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index 3bd7d55eebce..80936c68a7d3 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -124,6 +124,8 @@ struct uart_port {
 				               struct ktermios *old);
 	int			(*startup)(struct uart_port *port);
 	void			(*shutdown)(struct uart_port *port);
+	void			(*throttle)(struct uart_port *port);
+	void			(*unthrottle)(struct uart_port *port);
 	int			(*handle_irq)(struct uart_port *);
 	void			(*pm)(struct uart_port *, unsigned int state,
 				      unsigned int old);
-- 
2.1.0


WARNING: multiple messages have this Message-ID (diff)
From: bigeasy@linutronix.de (Sebastian Andrzej Siewior)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 01/16] tty: serial: 8250_core: allow to set ->throttle / ->unthrottle callbacks
Date: Wed, 10 Sep 2014 21:29:56 +0200	[thread overview]
Message-ID: <1410377411-26656-2-git-send-email-bigeasy@linutronix.de> (raw)
In-Reply-To: <1410377411-26656-1-git-send-email-bigeasy@linutronix.de>

The OMAP UART provides support for HW assisted flow control. What is
missing is the support to throttle / unthrottle callbacks which are used
by the omap-serial driver at the moment.
This patch adds the callbacks. It should be safe to add them since they
are only invoked from the serial_core (uart_throttle()) if the feature
flags are set.

Reviewed-by: Tony Lindgren <tony@atomide.com>
Tested-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 drivers/tty/serial/8250/8250_core.c | 14 ++++++++++++++
 include/linux/serial_core.h         |  2 ++
 2 files changed, 16 insertions(+)

diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
index a0c1d64f34c5..68c44d97091b 100644
--- a/drivers/tty/serial/8250/8250_core.c
+++ b/drivers/tty/serial/8250/8250_core.c
@@ -1319,6 +1319,16 @@ static void serial8250_start_tx(struct uart_port *port)
 	}
 }
 
+static void serial8250_throttle(struct uart_port *port)
+{
+	port->throttle(port);
+}
+
+static void serial8250_unthrottle(struct uart_port *port)
+{
+	port->unthrottle(port);
+}
+
 static void serial8250_stop_rx(struct uart_port *port)
 {
 	struct uart_8250_port *up = up_to_u8250p(port);
@@ -2912,6 +2922,8 @@ static struct uart_ops serial8250_pops = {
 	.get_mctrl	= serial8250_get_mctrl,
 	.stop_tx	= serial8250_stop_tx,
 	.start_tx	= serial8250_start_tx,
+	.throttle	= serial8250_throttle,
+	.unthrottle	= serial8250_unthrottle,
 	.stop_rx	= serial8250_stop_rx,
 	.enable_ms	= serial8250_enable_ms,
 	.break_ctl	= serial8250_break_ctl,
@@ -3462,6 +3474,8 @@ int serial8250_register_8250_port(struct uart_8250_port *up)
 		uart->capabilities	= up->capabilities;
 		uart->rs485_config	= up->rs485_config;
 		uart->rs485		= up->rs485;
+		uart->port.throttle	= up->port.throttle;
+		uart->port.unthrottle	= up->port.unthrottle;
 
 		/* Take tx_loadsz from fifosize if it wasn't set separately */
 		if (uart->port.fifosize && !uart->tx_loadsz)
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index 3bd7d55eebce..80936c68a7d3 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -124,6 +124,8 @@ struct uart_port {
 				               struct ktermios *old);
 	int			(*startup)(struct uart_port *port);
 	void			(*shutdown)(struct uart_port *port);
+	void			(*throttle)(struct uart_port *port);
+	void			(*unthrottle)(struct uart_port *port);
 	int			(*handle_irq)(struct uart_port *);
 	void			(*pm)(struct uart_port *, unsigned int state,
 				      unsigned int old);
-- 
2.1.0

  reply	other threads:[~2014-09-10 19:30 UTC|newest]

Thread overview: 236+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-10 19:29 [PATCH 00/16 v9] omap 8250 based uart + DMA Sebastian Andrzej Siewior
2014-09-10 19:29 ` Sebastian Andrzej Siewior
2014-09-10 19:29 ` Sebastian Andrzej Siewior
2014-09-10 19:29 ` Sebastian Andrzej Siewior [this message]
2014-09-10 19:29   ` [PATCH 01/16] tty: serial: 8250_core: allow to set ->throttle / ->unthrottle callbacks Sebastian Andrzej Siewior
2014-09-10 19:29 ` [PATCH 02/16] tty: serial: 8250_core: add run time pm Sebastian Andrzej Siewior
2014-09-10 19:29   ` Sebastian Andrzej Siewior
2014-09-10 19:29   ` Sebastian Andrzej Siewior
2014-09-29  9:46   ` Frans Klaver
2014-09-29  9:46     ` Frans Klaver
2014-09-29  9:46     ` Frans Klaver
2014-09-29 13:39     ` Sebastian Andrzej Siewior
2014-09-29 13:39       ` Sebastian Andrzej Siewior
2014-09-10 19:29 ` [PATCH 03/16] tty: serial: 8250_core: read only RX if there is something in the FIFO Sebastian Andrzej Siewior
2014-09-10 19:29   ` Sebastian Andrzej Siewior
2015-02-09 13:34   ` Nicolas Schichan
2015-02-09 13:34     ` Nicolas Schichan
2015-02-09 23:34     ` Peter Hurley
2015-02-09 23:34       ` Peter Hurley
2015-02-10  9:32       ` Sebastian Andrzej Siewior
2015-02-10  9:32         ` Sebastian Andrzej Siewior
2015-02-10 12:04       ` Nicolas Schichan
2015-02-10 12:04         ` Nicolas Schichan
2015-02-10 17:46         ` Peter Hurley
2015-02-10 17:46           ` Peter Hurley
2015-02-11 20:01           ` Peter Hurley
2015-02-11 20:01             ` Peter Hurley
2015-02-11 20:03             ` Tony Lindgren
2015-02-11 20:03               ` Tony Lindgren
2015-02-11 20:03               ` Tony Lindgren
2015-02-11 20:42               ` Peter Hurley
2015-02-11 20:42                 ` Peter Hurley
2015-02-12  8:45                 ` Sebastian Andrzej Siewior
2015-02-12  8:45                   ` Sebastian Andrzej Siewior
2015-02-12  9:40                   ` Russell King - ARM Linux
2015-02-12  9:40                     ` Russell King - ARM Linux
2015-02-12 16:32                   ` Peter Hurley
2015-02-12 16:32                     ` Peter Hurley
2015-02-12 19:23                     ` Sebastian Andrzej Siewior
2015-02-12 19:23                       ` Sebastian Andrzej Siewior
2015-02-12 19:55                       ` Peter Hurley
2015-02-12 19:55                         ` Peter Hurley
2015-02-12 20:34                         ` Sebastian Andrzej Siewior
2015-02-12 20:34                           ` Sebastian Andrzej Siewior
2015-02-13 18:51                         ` Sebastian Andrzej Siewior
2015-02-13 18:51                           ` Sebastian Andrzej Siewior
2015-02-13 23:15                           ` Russell King - ARM Linux
2015-02-13 23:15                             ` Russell King - ARM Linux
2015-02-15 17:32                             ` [PATCH] serial: 8250: Revert "tty: serial: 8250_core: read only RX if there is something in the FIFO" Sebastian Andrzej Siewior
2015-02-15 17:32                               ` Sebastian Andrzej Siewior
2015-05-12 20:25                               ` Tony Lindgren
2015-05-12 20:25                                 ` Tony Lindgren
2014-09-10 19:29 ` [PATCH 04/16] tty: serial: 8250_core: use the ->line argument as a hint in serial8250_find_match_or_unused() Sebastian Andrzej Siewior
2014-09-10 19:29   ` Sebastian Andrzej Siewior
2014-09-10 19:30 ` [PATCH 05/16] tty: serial: 8250_core: remove UART_IER_RDI in serial8250_stop_rx() Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-11 11:19   ` Heikki Krogerus
2014-09-11 11:19     ` Heikki Krogerus
2014-09-10 19:30 ` [PATCH 06/16] tty: serial: Add 8250-core based omap driver Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-11 11:57   ` Peter Hurley
2014-09-11 11:57     ` Peter Hurley
2014-09-11 11:57     ` Peter Hurley
2014-09-16 17:01     ` Sebastian Andrzej Siewior
2014-09-16 17:01       ` Sebastian Andrzej Siewior
2014-09-16 17:01       ` Sebastian Andrzej Siewior
2014-09-29  9:38   ` Frans Klaver
2014-09-29  9:38     ` Frans Klaver
2014-09-29  9:38     ` Frans Klaver
2014-09-29 13:27     ` Sebastian Andrzej Siewior
2014-09-29 13:27       ` Sebastian Andrzej Siewior
2014-09-29 13:34       ` Frans Klaver
2014-09-29 13:34         ` Frans Klaver
2014-09-10 19:30 ` [PATCH 07/16] tty: serial: 8250_dma: handle error on TX submit Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-10 19:30 ` [PATCH 08/16] tty: serial: 8250_dma: enqueue RX dma again on completion Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-10 19:30 ` [PATCH 09/16] tty: serial: 8250_dma: Add a TX trigger workaround for AM33xx Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-11 11:17   ` Heikki Krogerus
2014-09-11 11:17     ` Heikki Krogerus
2014-09-11 11:17     ` Heikki Krogerus
2014-09-11 11:42     ` Sebastian Andrzej Siewior
2014-09-11 11:42       ` Sebastian Andrzej Siewior
2014-09-11 11:42       ` Sebastian Andrzej Siewior
2014-09-11 12:32       ` Peter Hurley
2014-09-11 12:32         ` Peter Hurley
2014-09-11 12:50         ` Sebastian Andrzej Siewior
2014-09-11 12:50           ` Sebastian Andrzej Siewior
2014-09-11 14:35           ` Peter Hurley
2014-09-11 14:35             ` Peter Hurley
2014-09-11 14:35             ` Peter Hurley
2014-09-15 17:01             ` Sebastian Andrzej Siewior
2014-09-15 17:01               ` Sebastian Andrzej Siewior
2014-09-16 16:55               ` Sebastian Andrzej Siewior
2014-09-16 16:55                 ` Sebastian Andrzej Siewior
2014-09-16 16:55                 ` Sebastian Andrzej Siewior
2014-09-17 12:20                 ` Peter Hurley
2014-09-17 12:20                   ` Peter Hurley
2014-09-17 16:25                   ` Sebastian Andrzej Siewior
2014-09-17 16:25                     ` Sebastian Andrzej Siewior
2014-09-17 16:25                     ` Sebastian Andrzej Siewior
2014-09-29 16:15                   ` Sebastian Andrzej Siewior
2014-09-29 16:15                     ` Sebastian Andrzej Siewior
2014-09-11 15:11           ` Frans Klaver
2014-09-11 15:11             ` Frans Klaver
2014-09-11 15:11             ` Frans Klaver
2014-09-11 16:04             ` Sebastian Andrzej Siewior
2014-09-11 16:04               ` Sebastian Andrzej Siewior
2014-09-11 17:04               ` Frans Klaver
2014-09-11 17:04                 ` Frans Klaver
2014-09-12  7:23                 ` Sebastian Andrzej Siewior
2014-09-12  7:23                   ` Sebastian Andrzej Siewior
2014-09-12  9:40                   ` Frans Klaver
2014-09-12  9:40                     ` Frans Klaver
2014-09-12  9:51                     ` Sebastian Andrzej Siewior
2014-09-12  9:51                       ` Sebastian Andrzej Siewior
2014-09-12 10:28                       ` Frans Klaver
2014-09-12 10:28                         ` Frans Klaver
2014-09-12 10:28                         ` Frans Klaver
2014-09-15 16:42                         ` Sebastian Andrzej Siewior
2014-09-15 16:42                           ` Sebastian Andrzej Siewior
2014-09-16  9:05                           ` Frans Klaver
2014-09-16  9:05                             ` Frans Klaver
2014-09-16  9:05                             ` Frans Klaver
2014-09-16 12:42                             ` Frans Klaver
2014-09-16 12:42                               ` Frans Klaver
2014-09-16 12:42                               ` Frans Klaver
2014-09-16 14:23                               ` Frans Klaver
2014-09-16 14:23                                 ` Frans Klaver
2014-09-16 14:23                                 ` Frans Klaver
2014-09-17 10:28                           ` Frans Klaver
2014-09-17 10:28                             ` Frans Klaver
2014-09-17 10:28                             ` Frans Klaver
2014-09-21 20:41                             ` Sebastian Andrzej Siewior
2014-09-21 20:41                               ` Sebastian Andrzej Siewior
2014-09-21 20:41                               ` Sebastian Andrzej Siewior
2014-09-22  9:28                               ` Frans Klaver
2014-09-22  9:28                                 ` Frans Klaver
2014-09-22  9:28                                 ` Frans Klaver
2014-09-24  7:56                                 ` Sebastian Andrzej Siewior
2014-09-24  7:56                                   ` Sebastian Andrzej Siewior
2014-09-25 15:14                                 ` Sebastian Andrzej Siewior
2014-09-25 15:14                                   ` Sebastian Andrzej Siewior
2014-09-25 15:18                                   ` Frans Klaver
2014-09-25 15:18                                     ` Frans Klaver
2014-09-29  8:50                                   ` Frans Klaver
2014-09-29  8:50                                     ` Frans Klaver
2014-09-29  8:50                                     ` Frans Klaver
2014-09-29  9:54                                     ` Sebastian Andrzej Siewior
2014-09-29  9:54                                       ` Sebastian Andrzej Siewior
2014-09-29 10:30                                       ` Frans Klaver
2014-09-29 10:30                                         ` Frans Klaver
2014-09-29 10:30                                         ` Frans Klaver
2014-09-30  8:44                                         ` Frans Klaver
2014-09-30  8:44                                           ` Frans Klaver
2014-09-30  8:44                                           ` Frans Klaver
2014-10-02 10:27                                           ` Sebastian Andrzej Siewior
2014-10-02 10:27                                             ` Sebastian Andrzej Siewior
2014-10-02 10:27                                             ` Sebastian Andrzej Siewior
2014-10-13 14:55                                             ` Frans Klaver
2014-10-13 14:55                                               ` Frans Klaver
2014-10-13 14:55                                               ` Frans Klaver
2014-09-23 17:03                               ` Peter Hurley
2014-09-23 17:03                                 ` Peter Hurley
2014-09-24  7:53                                 ` Sebastian Andrzej Siewior
2014-09-24  7:53                                   ` Sebastian Andrzej Siewior
2014-09-25 10:42                                   ` Sebastian Andrzej Siewior
2014-09-25 10:42                                     ` Sebastian Andrzej Siewior
2014-09-25 11:31                                     ` Peter Hurley
2014-09-25 11:31                                       ` Peter Hurley
2014-09-25 13:11                                       ` Sebastian Andrzej Siewior
2014-09-25 13:11                                         ` Sebastian Andrzej Siewior
2014-09-25 13:11                                         ` Sebastian Andrzej Siewior
2014-09-17 16:34       ` Sebastian Andrzej Siewior
2014-09-17 16:34         ` Sebastian Andrzej Siewior
2014-09-17 16:34         ` Sebastian Andrzej Siewior
2014-09-19 10:22         ` Heikki Krogerus
2014-09-19 10:22           ` Heikki Krogerus
2014-09-19 10:22           ` Heikki Krogerus
2014-09-19 10:58           ` Sebastian Andrzej Siewior
2014-09-19 10:58             ` Sebastian Andrzej Siewior
2014-09-19 11:25             ` Peter Hurley
2014-09-19 11:25               ` Peter Hurley
2014-09-22  7:46             ` Heikki Krogerus
2014-09-22  7:46               ` Heikki Krogerus
2014-09-25  9:24               ` Sebastian Andrzej Siewior
2014-09-25  9:24                 ` Sebastian Andrzej Siewior
2014-09-10 19:30 ` [PATCH 10/16] tty: serial: 8250_dma: optimize the xmit path due to UART_BUG_DMA_TX Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-10 19:30 ` [PATCH 11/16] tty: serial: 8250_dma: keep own book keeping about RX transfers Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-10 19:30 ` [PATCH 12/16] tty: serial: 8250_dma: handle the UART RDI event while DMA remains idle Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-29  9:23   ` Frans Klaver
2014-09-29  9:23     ` Frans Klaver
2014-09-29  9:23     ` Frans Klaver
2014-09-10 19:30 ` [PATCH 13/16] tty: serial: 8250_dma: add pm runtime Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-29  9:26   ` Frans Klaver
2014-09-29  9:26     ` Frans Klaver
2014-09-29  9:26     ` Frans Klaver
2014-09-29  9:56     ` Sebastian Andrzej Siewior
2014-09-29  9:56       ` Sebastian Andrzej Siewior
2014-09-10 19:30 ` [PATCH 14/16] arm: dts: am33xx: add DMA properties for UART Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-10 19:30 ` [PATCH 15/16] arm: dts: dra7: " Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-10 19:30 ` [PATCH 16/16] tty: serial: 8250: omap: add dma support Sebastian Andrzej Siewior
2014-09-10 19:30   ` Sebastian Andrzej Siewior
2014-09-12 22:43 ` [PATCH 00/16 v9] omap 8250 based uart + DMA Tony Lindgren
2014-09-12 22:43   ` Tony Lindgren
2014-09-12 22:43   ` Tony Lindgren
2014-09-15 11:50   ` Sebastian Andrzej Siewior
2014-09-15 11:50     ` Sebastian Andrzej Siewior
2014-09-15 11:50     ` Sebastian Andrzej Siewior
2014-09-16 12:57     ` Sebastian Andrzej Siewior
2014-09-16 12:57       ` Sebastian Andrzej Siewior
2014-09-16 12:57       ` Sebastian Andrzej Siewior
2014-09-16 16:48       ` Tony Lindgren
2014-09-16 16:48         ` Tony Lindgren
2014-09-16 21:30         ` Tony Lindgren
2014-09-16 21:30           ` Tony Lindgren
2014-09-16 21:30           ` Tony Lindgren
2014-09-17  8:38           ` Sebastian Andrzej Siewior
2014-09-17  8:38             ` Sebastian Andrzej Siewior
2014-09-17  9:05 ` Sebastian Andrzej Siewior
2014-09-17  9:05   ` Sebastian Andrzej Siewior
2014-09-26 16:02   ` Greg KH
2014-09-26 16:02     ` Greg KH
2014-09-26 16:02     ` Greg KH

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=1410377411-26656-2-git-send-email-bigeasy@linutronix.de \
    --to=bigeasy@linutronix.de \
    --cc=balbi@ti.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=tony@atomide.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: link
Be 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.