From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
To: Changbin Du <changbin.du@gmail.com>
Cc: Jonathan Corbet <corbet@lwn.net>,
Bjorn Helgaas <bhelgaas@google.com>,
rjw@rjwysocki.net, linux-pci@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
tglx@linutronix.de, mingo@redhat.com, x86@kernel.org,
fenghua.yu@intel.com, linuxppc-dev@lists.ozlabs.org,
linux-acpi@vger.kernel.org, linux-gpio@vger.kernel.org
Subject: Re: [PATCH v4 27/63] Documentation: PCI: convert PCIEBUS-HOWTO.txt to reST
Date: Wed, 24 Apr 2019 12:23:27 -0300 [thread overview]
Message-ID: <20190424122327.1ff0c975@coco.lan> (raw)
In-Reply-To: <20190423162932.21428-28-changbin.du@gmail.com>
Em Wed, 24 Apr 2019 00:28:56 +0800
Changbin Du <changbin.du@gmail.com> escreveu:
> This converts the plain text documentation to reStructuredText format and
> add it to Sphinx TOC tree. No essential content change.
>
> Signed-off-by: Changbin Du <changbin.du@gmail.com>
> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
> ---
> .../{PCIEBUS-HOWTO.txt => PCIEBUS-HOWTO.rst} | 140 ++++++++++--------
> Documentation/PCI/index.rst | 1 +
> 2 files changed, 82 insertions(+), 59 deletions(-)
> rename Documentation/PCI/{PCIEBUS-HOWTO.txt => PCIEBUS-HOWTO.rst} (70%)
Names in lowercase after rename, please.
For the changes itself at the txt file:
Reviewed-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
>
> diff --git a/Documentation/PCI/PCIEBUS-HOWTO.txt b/Documentation/PCI/PCIEBUS-HOWTO.rst
> similarity index 70%
> rename from Documentation/PCI/PCIEBUS-HOWTO.txt
> rename to Documentation/PCI/PCIEBUS-HOWTO.rst
> index 15f0bb3b5045..f882ff62c51f 100644
> --- a/Documentation/PCI/PCIEBUS-HOWTO.txt
> +++ b/Documentation/PCI/PCIEBUS-HOWTO.rst
> @@ -1,16 +1,23 @@
> - The PCI Express Port Bus Driver Guide HOWTO
> - Tom L Nguyen tom.l.nguyen@intel.com
> - 11/03/2004
> +.. SPDX-License-Identifier: GPL-2.0
> +.. include:: <isonum.txt>
>
> -1. About this guide
> +===========================================
> +The PCI Express Port Bus Driver Guide HOWTO
> +===========================================
> +
> +:Author: Tom L Nguyen tom.l.nguyen@intel.com 11/03/2004
> +:Copyright: |copy| 2004 Intel Corporation
> +
> +About this guide
> +================
>
> This guide describes the basics of the PCI Express Port Bus driver
> and provides information on how to enable the service drivers to
> register/unregister with the PCI Express Port Bus Driver.
>
> -2. Copyright 2004 Intel Corporation
>
> -3. What is the PCI Express Port Bus Driver
> +What is the PCI Express Port Bus Driver
> +=======================================
>
> A PCI Express Port is a logical PCI-PCI Bridge structure. There
> are two types of PCI Express Port: the Root Port and the Switch
> @@ -30,7 +37,8 @@ support (AER), and virtual channel support (VC). These services may
> be handled by a single complex driver or be individually distributed
> and handled by corresponding service drivers.
>
> -4. Why use the PCI Express Port Bus Driver?
> +Why use the PCI Express Port Bus Driver?
> +========================================
>
> In existing Linux kernels, the Linux Device Driver Model allows a
> physical device to be handled by only a single driver. The PCI
> @@ -51,28 +59,31 @@ PCI Express Ports and distributes all provided service requests
> to the corresponding service drivers as required. Some key
> advantages of using the PCI Express Port Bus driver are listed below:
>
> - - Allow multiple service drivers to run simultaneously on
> - a PCI-PCI Bridge Port device.
> + - Allow multiple service drivers to run simultaneously on
> + a PCI-PCI Bridge Port device.
>
> - - Allow service drivers implemented in an independent
> - staged approach.
> + - Allow service drivers implemented in an independent
> + staged approach.
>
> - - Allow one service driver to run on multiple PCI-PCI Bridge
> - Port devices.
> + - Allow one service driver to run on multiple PCI-PCI Bridge
> + Port devices.
>
> - - Manage and distribute resources of a PCI-PCI Bridge Port
> - device to requested service drivers.
> + - Manage and distribute resources of a PCI-PCI Bridge Port
> + device to requested service drivers.
>
> -5. Configuring the PCI Express Port Bus Driver vs. Service Drivers
> +Configuring the PCI Express Port Bus Driver vs. Service Drivers
> +===============================================================
>
> -5.1 Including the PCI Express Port Bus Driver Support into the Kernel
> +Including the PCI Express Port Bus Driver Support into the Kernel
> +-----------------------------------------------------------------
>
> Including the PCI Express Port Bus driver depends on whether the PCI
> Express support is included in the kernel config. The kernel will
> automatically include the PCI Express Port Bus driver as a kernel
> driver when the PCI Express support is enabled in the kernel.
>
> -5.2 Enabling Service Driver Support
> +Enabling Service Driver Support
> +-------------------------------
>
> PCI device drivers are implemented based on Linux Device Driver Model.
> All service drivers are PCI device drivers. As discussed above, it is
> @@ -89,9 +100,11 @@ header file /include/linux/pcieport_if.h, before calling these APIs.
> Failure to do so will result an identity mismatch, which prevents
> the PCI Express Port Bus driver from loading a service driver.
>
> -5.2.1 pcie_port_service_register
> +pcie_port_service_register
> +~~~~~~~~~~~~~~~~~~~~~~~~~~
> +::
>
> -int pcie_port_service_register(struct pcie_port_service_driver *new)
> + int pcie_port_service_register(struct pcie_port_service_driver *new)
>
> This API replaces the Linux Driver Model's pci_register_driver API. A
> service driver should always calls pcie_port_service_register at
> @@ -99,69 +112,76 @@ module init. Note that after service driver being loaded, calls
> such as pci_enable_device(dev) and pci_set_master(dev) are no longer
> necessary since these calls are executed by the PCI Port Bus driver.
>
> -5.2.2 pcie_port_service_unregister
> +pcie_port_service_unregister
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +::
>
> -void pcie_port_service_unregister(struct pcie_port_service_driver *new)
> + void pcie_port_service_unregister(struct pcie_port_service_driver *new)
>
> pcie_port_service_unregister replaces the Linux Driver Model's
> pci_unregister_driver. It's always called by service driver when a
> module exits.
>
> -5.2.3 Sample Code
> +Sample Code
> +~~~~~~~~~~~
>
> Below is sample service driver code to initialize the port service
> driver data structure.
> +::
>
> -static struct pcie_port_service_id service_id[] = { {
> - .vendor = PCI_ANY_ID,
> - .device = PCI_ANY_ID,
> - .port_type = PCIE_RC_PORT,
> - .service_type = PCIE_PORT_SERVICE_AER,
> - }, { /* end: all zeroes */ }
> -};
> + static struct pcie_port_service_id service_id[] = { {
> + .vendor = PCI_ANY_ID,
> + .device = PCI_ANY_ID,
> + .port_type = PCIE_RC_PORT,
> + .service_type = PCIE_PORT_SERVICE_AER,
> + }, { /* end: all zeroes */ }
> + };
>
> -static struct pcie_port_service_driver root_aerdrv = {
> - .name = (char *)device_name,
> - .id_table = &service_id[0],
> + static struct pcie_port_service_driver root_aerdrv = {
> + .name = (char *)device_name,
> + .id_table = &service_id[0],
>
> - .probe = aerdrv_load,
> - .remove = aerdrv_unload,
> + .probe = aerdrv_load,
> + .remove = aerdrv_unload,
>
> - .suspend = aerdrv_suspend,
> - .resume = aerdrv_resume,
> -};
> + .suspend = aerdrv_suspend,
> + .resume = aerdrv_resume,
> + };
>
> Below is a sample code for registering/unregistering a service
> driver.
> +::
>
> -static int __init aerdrv_service_init(void)
> -{
> - int retval = 0;
> + static int __init aerdrv_service_init(void)
> + {
> + int retval = 0;
>
> - retval = pcie_port_service_register(&root_aerdrv);
> - if (!retval) {
> - /*
> - * FIX ME
> - */
> - }
> - return retval;
> -}
> + retval = pcie_port_service_register(&root_aerdrv);
> + if (!retval) {
> + /*
> + * FIX ME
> + */
> + }
> + return retval;
> + }
>
> -static void __exit aerdrv_service_exit(void)
> -{
> - pcie_port_service_unregister(&root_aerdrv);
> -}
> + static void __exit aerdrv_service_exit(void)
> + {
> + pcie_port_service_unregister(&root_aerdrv);
> + }
>
> -module_init(aerdrv_service_init);
> -module_exit(aerdrv_service_exit);
> + module_init(aerdrv_service_init);
> + module_exit(aerdrv_service_exit);
>
> -6. Possible Resource Conflicts
> +Possible Resource Conflicts
> +===========================
>
> Since all service drivers of a PCI-PCI Bridge Port device are
> allowed to run simultaneously, below lists a few of possible resource
> conflicts with proposed solutions.
>
> -6.1 MSI and MSI-X Vector Resource
> +MSI and MSI-X Vector Resource
> +-----------------------------
>
> Once MSI or MSI-X interrupts are enabled on a device, it stays in this
> mode until they are disabled again. Since service drivers of the same
> @@ -179,7 +199,8 @@ driver. Service drivers should use (struct pcie_device*)dev->irq to
> call request_irq/free_irq. In addition, the interrupt mode is stored
> in the field interrupt_mode of struct pcie_device.
>
> -6.3 PCI Memory/IO Mapped Regions
> +PCI Memory/IO Mapped Regions
> +----------------------------
>
> Service drivers for PCI Express Power Management (PME), Advanced
> Error Reporting (AER), Hot-Plug (HP) and Virtual Channel (VC) access
> @@ -188,7 +209,8 @@ registers accessed are independent of each other. This patch assumes
> that all service drivers will be well behaved and not overwrite
> other service driver's configuration settings.
>
> -6.4 PCI Config Registers
> +PCI Config Registers
> +--------------------
>
> Each service driver runs its PCI config operations on its own
> capability structure except the PCI Express capability structure, in
> diff --git a/Documentation/PCI/index.rst b/Documentation/PCI/index.rst
> index 7babf43709b0..452723318405 100644
> --- a/Documentation/PCI/index.rst
> +++ b/Documentation/PCI/index.rst
> @@ -9,3 +9,4 @@ Linux PCI Bus Subsystem
> :numbered:
>
> pci
> + PCIEBUS-HOWTO
Thanks,
Mauro
next prev parent reply other threads:[~2019-04-24 15:23 UTC|newest]
Thread overview: 123+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-23 16:28 [PATCH v4 00/63] Include linux ACPI/PCI/X86 docs into Sphinx TOC tree Changbin Du
2019-04-23 16:28 ` [PATCH v4 01/63] Documentation: add Linux ACPI to " Changbin Du
2019-04-23 20:39 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 02/63] Documentation: ACPI: move namespace.txt to firmware-guide/acpi and convert to reST Changbin Du
2019-04-23 20:38 ` Mauro Carvalho Chehab
2019-04-24 16:09 ` Changbin Du
2019-04-23 16:28 ` [PATCH v4 03/63] Documentation: ACPI: move enumeration.txt " Changbin Du
2019-04-23 20:42 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 04/63] Documentation: ACPI: move osi.txt " Changbin Du
2019-04-23 20:44 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 05/63] Documentation: ACPI: move linuxized-acpica.txt to driver-api/acpi " Changbin Du
2019-04-23 20:50 ` Mauro Carvalho Chehab
2019-04-24 16:15 ` Changbin Du
2019-04-23 16:28 ` [PATCH v4 06/63] Documentation: ACPI: move scan_handlers.txt " Changbin Du
2019-04-23 20:51 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 07/63] Documentation: ACPI: move DSD-properties-rules.txt to firmware-guide/acpi and covert " Changbin Du
2019-04-23 20:52 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 08/63] Documentation: ACPI: move gpio-properties.txt to firmware-guide/acpi and convert " Changbin Du
2019-04-23 20:55 ` Mauro Carvalho Chehab
2019-04-24 16:21 ` Changbin Du
2019-04-23 16:28 ` [PATCH v4 09/63] Documentation: ACPI: move method-customizing.txt " Changbin Du
2019-04-23 21:03 ` Mauro Carvalho Chehab
2019-04-24 16:28 ` Changbin Du
2019-04-24 17:53 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 10/63] Documentation: ACPI: move initrd_table_override.txt to admin-guide/acpi " Changbin Du
2019-04-23 21:07 ` Mauro Carvalho Chehab
2019-04-24 16:33 ` Changbin Du
2019-04-23 16:28 ` [PATCH v4 11/63] Documentation: ACPI: move dsdt-override.txt " Changbin Du
2019-04-23 21:08 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 12/63] Documentation: ACPI: move i2c-muxes.txt to firmware-guide/acpi " Changbin Du
2019-04-23 21:09 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 13/63] Documentation: ACPI: move acpi-lid.txt " Changbin Du
2019-04-23 21:12 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 14/63] Documentation: ACPI: move dsd/graph.txt " Changbin Du
2019-04-23 21:14 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 15/63] Documentation: ACPI: move dsd/data-node-references.txt " Changbin Du
2019-04-23 21:17 ` Mauro Carvalho Chehab
2019-04-24 16:44 ` Changbin Du
2019-04-23 16:28 ` [PATCH v4 16/63] Documentation: ACPI: move debug.txt " Changbin Du
2019-04-23 21:21 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 17/63] Documentation: ACPI: move method-tracing.txt to firmware-guide/acpi and convert to rsST Changbin Du
2019-04-24 14:26 ` Mauro Carvalho Chehab
2019-04-24 16:55 ` Changbin Du
2019-04-23 16:28 ` [PATCH v4 18/63] Documentation: ACPI: move aml-debugger.txt to firmware-guide/acpi and convert to reST Changbin Du
2019-04-24 14:28 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 19/63] Documentation: ACPI: move apei/output_format.txt " Changbin Du
2019-04-24 14:29 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 20/63] Documentation: ACPI: move apei/einj.txt " Changbin Du
2019-04-24 14:33 ` Mauro Carvalho Chehab
2019-04-24 17:12 ` Changbin Du
2019-04-23 16:28 ` [PATCH v4 21/63] Documentation: ACPI: move cppc_sysfs.txt to admin-guide/acpi " Changbin Du
2019-04-24 14:48 ` Mauro Carvalho Chehab
2019-04-24 17:22 ` Changbin Du
2019-04-24 18:04 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 22/63] Documentation: ACPI: move lpit.txt to firmware-guide/acpi " Changbin Du
2019-04-24 14:49 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 23/63] Documentation: ACPI: move ssdt-overlays.txt to admin-guide/acpi " Changbin Du
2019-04-24 14:51 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 24/63] Documentation: ACPI: move video_extension.txt to firmware-guide/acpi " Changbin Du
2019-04-24 14:56 ` Mauro Carvalho Chehab
2019-04-24 17:31 ` Changbin Du
2019-04-23 16:28 ` [PATCH v4 25/63] Documentation: add Linux PCI to Sphinx TOC tree Changbin Du
2019-04-24 15:03 ` Mauro Carvalho Chehab
2019-04-25 15:42 ` Changbin Du
2019-04-23 16:28 ` [PATCH v4 26/63] Documentation: PCI: convert pci.txt to reST Changbin Du
2019-04-24 15:20 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 27/63] Documentation: PCI: convert PCIEBUS-HOWTO.txt " Changbin Du
2019-04-24 15:23 ` Mauro Carvalho Chehab [this message]
2019-04-23 16:28 ` [PATCH v4 28/63] Documentation: PCI: convert pci-iov-howto.txt " Changbin Du
2019-04-24 15:25 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 29/63] Documentation: PCI: convert MSI-HOWTO.txt " Changbin Du
2019-04-24 15:29 ` Mauro Carvalho Chehab
2019-04-23 16:28 ` [PATCH v4 30/63] Documentation: PCI: convert acpi-info.txt " Changbin Du
2019-04-24 15:34 ` Mauro Carvalho Chehab
2019-04-23 16:29 ` [PATCH v4 31/63] Documentation: PCI: convert pci-error-recovery.txt " Changbin Du
2019-04-24 15:45 ` Mauro Carvalho Chehab
2019-04-23 16:29 ` [PATCH v4 32/63] Documentation: PCI: convert pcieaer-howto.txt " Changbin Du
2019-04-24 15:49 ` Mauro Carvalho Chehab
2019-04-23 16:29 ` [PATCH v4 33/63] Documentation: PCI: convert endpoint/pci-endpoint.txt " Changbin Du
2019-04-24 15:55 ` Mauro Carvalho Chehab
2019-04-23 16:29 ` [PATCH v4 34/63] Documentation: PCI: convert endpoint/pci-endpoint-cfs.txt " Changbin Du
2019-04-24 16:26 ` Mauro Carvalho Chehab
2019-04-23 16:29 ` [PATCH v4 35/63] Documentation: PCI: convert endpoint/pci-test-function.txt " Changbin Du
2019-04-24 16:58 ` Mauro Carvalho Chehab
2019-04-23 16:29 ` [PATCH v4 36/63] Documentation: PCI: convert endpoint/pci-test-howto.txt " Changbin Du
2019-04-24 17:00 ` Mauro Carvalho Chehab
2019-04-23 16:29 ` [PATCH v4 37/63] Documentation: add Linux x86 docs to Sphinx TOC tree Changbin Du
2019-04-24 17:04 ` Mauro Carvalho Chehab
2019-04-23 16:29 ` [PATCH v4 38/63] Documentation: x86: convert boot.txt to reST Changbin Du
2019-04-24 17:36 ` Mauro Carvalho Chehab
2019-04-23 16:29 ` [PATCH v4 39/63] Documentation: x86: convert topology.txt " Changbin Du
2019-04-24 17:44 ` Mauro Carvalho Chehab
2019-04-26 14:23 ` Changbin Du
2019-04-23 16:29 ` [PATCH v4 40/63] Documentation: x86: convert exception-tables.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 41/63] Documentation: x86: convert kernel-stacks " Changbin Du
2019-04-23 16:29 ` [PATCH v4 42/63] Documentation: x86: convert entry_64.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 43/63] Documentation: x86: convert earlyprintk.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 44/63] Documentation: x86: convert zero-page.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 45/63] Documentation: x86: convert tlb.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 46/63] Documentation: x86: convert mtrr.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 47/63] Documentation: x86: convert pat.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 48/63] Documentation: x86: convert protection-keys.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 49/63] Documentation: x86: convert intel_mpx.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 50/63] Documentation: x86: convert amd-memory-encryption.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 51/63] Documentation: x86: convert pti.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 52/63] Documentation: x86: convert microcode.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 53/63] Documentation: x86: convert resctrl_ui.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 54/63] Documentation: x86: convert orc-unwinder.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 55/63] Documentation: x86: convert usb-legacy-support.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 56/63] Documentation: x86: convert i386/IO-APIC.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 57/63] Documentation: x86: convert x86_64/boot-options.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 58/63] Documentation: x86: convert x86_64/uefi.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 59/63] Documentation: x86: convert x86_64/mm.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 60/63] Documentation: x86: convert x86_64/5level-paging.txt " Changbin Du
2019-04-23 16:29 ` [PATCH v4 61/63] Documentation: x86: convert x86_64/fake-numa-for-cpusets " Changbin Du
2019-04-23 16:29 ` [PATCH v4 62/63] Documentation: x86: convert x86_64/cpu-hotplug-spec " Changbin Du
2019-04-23 16:29 ` [PATCH v4 63/63] Documentation: x86: convert x86_64/machinecheck " Changbin Du
2019-04-23 16:39 ` [PATCH v4 00/63] Include linux ACPI/PCI/X86 docs into Sphinx TOC tree Rafael J. Wysocki
2019-04-23 17:36 ` Bjorn Helgaas
2019-04-24 15:46 ` Changbin Du
2019-04-24 17:48 ` Mauro Carvalho Chehab
2019-04-24 16:18 ` Jonathan Corbet
2019-04-24 16:52 ` Mauro Carvalho Chehab
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=20190424122327.1ff0c975@coco.lan \
--to=mchehab+samsung@kernel.org \
--cc=bhelgaas@google.com \
--cc=changbin.du@gmail.com \
--cc=corbet@lwn.net \
--cc=fenghua.yu@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mingo@redhat.com \
--cc=rjw@rjwysocki.net \
--cc=tglx@linutronix.de \
--cc=x86@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).