devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tim Harvey <tharvey-UMMOYl/HMS+akBO8gow8eQ@public.gmane.org>
To: Steve Longerbeam <slongerbeam-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: "Rob Herring" <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	"Mark Rutland" <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	"Shawn Guo" <shawnguo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	"Sascha Hauer" <kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	"Fabio Estevam" <fabio.estevam-3arQi8VN3Tc@public.gmane.org>,
	"Russell King - ARM Linux"
	<linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org>,
	mchehab-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	"Hans Verkuil" <hverkuil-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>,
	"Nick Dyer" <nick-gcszYUEDH4VrovVCs/uTlw@public.gmane.org>,
	markus.heiser-m1Uo1GnMJf0b1SvskN2V4Q@public.gmane.org,
	"Philipp Zabel" <p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
	laurent.pinchart+renesas-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org,
	bparrot-l0cyMroinI0@public.gmane.org,
	geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org,
	"Arnd Bergmann" <arnd-r2nGTMty4D4@public.gmane.org>,
	"Sudip Mukherjee"
	<sudipm.mukherjee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	minghsiu.tsai-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org,
	"Tiffany Lin"
	<tiffany.lin-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
	"Jean-Christophe TROTIN"
	<jean-christophe.trotin-qxv4g6HH51o@public.gmane.org>,
	"Simon Horman"
	<horms+renesas-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org>
Subject: Re: [PATCH v7 00/34] i.MX Media Driver
Date: Thu, 1 Jun 2017 17:25:57 -0700	[thread overview]
Message-ID: <CAJ+vNU2K1g32HTbJktLYaCGWLbPs19HSM_PMNryPBqQC-O77vw@mail.gmail.com> (raw)
In-Reply-To: <1495672189-29164-1-git-send-email-steve_longerbeam-nmGgyN9QBj3QT0dZR+AlfA@public.gmane.org>

On Wed, May 24, 2017 at 5:29 PM, Steve Longerbeam <slongerbeam-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> In version 7:
>
> - video-mux: switched to Philipp's latest video-mux driver and updated
>   bindings docs, that makes use of the mmio-mux framework.
>
> - mmio-mux: includes Philipp's temporary patch that adds mmio-mux support
>   to video-mux driver, until mux framework is merged.
>
> - mmio-mux: updates to device tree from Philipp that define the i.MX6 mux
>   devices and modifies the video-mux device to become a consumer of the
>   video mmio-mux.
>
> - minor updates to Documentation/media/v4l-drivers/imx.rst.
>
> - ov5640: do nothing if entity stream count is greater than 1 in
>   ov5640_s_stream().
>
> - Previous versions of this driver had not tested the ability to enable
>   multiple independent streams, for instance enabling multiple output
>   pads from the imx6-mipi-csi2 subdevice, or enabling both prpenc and
>   prpvf outputs. Marek Vasut tested this support and reported issues
>   with it.
>
>   v4l2_pipeline_inherit_controls() used the media graph walk APIs, but
>   that walks both sink and source pads, so if there are multiple paths
>   enabled to video capture devices, controls would be added to the wrong
>   video capture device, and no controls added to the other enabled
>   capture devices.
>
>   These issues have been fixed. Control inheritance works correctly now
>   even with multiple enabled capture paths, and (for example)
>   simultaneous capture from prpenc and prpvf works also, and each with
>   independent scaling, CSC, and controls. For example prpenc can be
>   capturing with a 90 degree rotation, while prpvf is capturing with
>   vertical flip.
>
>   So the v4l2_pipeline_inherit_controls() patch has been dropped. The
>   new version of control inheritance could be made generically available,
>   but it would be more involved to incorporate it into v4l2-core.
>
> - A new function imx_media_fill_default_mbus_fields() is added to setup
>   colorimetry at sink pads, and these are propagated to source pads.
>
> - Ensure that the current sink and source rectangles meet alignment
>   restrictions before applying a new rotation control setting in
>   prp-enc/vf subdevices.
>
> - Chain the s_stream() subdev calls instead of implementing a custom
>   stream on/off function that attempts to call a fixed set of subdevices
>   in a pipeline in the correct order. This also simplifies imx6-mipi-csi2
>   subdevice, since the correct MIPI CSI-2 startup sequence can be
>   enforced completely in s_stream(), and s_power() is no longer
>   required. This also paves the way for more arbitrary OF graphs
>   external to the i.MX6.
>
> - Converted the v4l2_subdev and media_entity ops structures to const.
>

Hi Steve,

I've applied adv7180 device-tree config for the Gateworks ventana
boards on top of your imx-media-staging-md-v15 github branch but am
not able to get it to work.

Here's my device-tree patch that adds adv7180 to the GW54xx connected
to IPU2_CSI1:
--- a/arch/arm/boot/dts/imx6q-gw54xx.dts
+++ b/arch/arm/boot/dts/imx6q-gw54xx.dts
@@ -18,6 +18,76 @@
        compatible = "gw,imx6q-gw54xx", "gw,ventana", "fsl,imx6q";
 };

+&i2c3 {
+       adv7180: camera@20 {
+               compatible = "adi,adv7180";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_adv7180>;
+               reg = <0x20>;
+               powerdown-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <30 GPIO_ACTIVE_LOW>;
+               inputs = <0x00 0x01 0x02>;
+               input-names = "ADV7180 Composite on Ain1",
+                             "ADV7180 Composite on Ain2",
+                             "ADV7180 Composite on Ain3";
+
+               port {
+                       adv7180_to_ipu2_csi1_mux: endpoint {
+                               remote-endpoint =
<&ipu2_csi1_mux_from_parallel_sensor>;
+                               bus-width = <8>;
+                       };
+               };
+       };
+};
+
+&ipu2_csi1_from_ipu2_csi1_mux {
+       bus-width = <8>;
+};
+
+&ipu2_csi1_mux_from_parallel_sensor {
+       remote-endpoint = <&adv7180_to_ipu2_csi1_mux>;
+       bus-width = <8>;
+};
+
+&ipu2_csi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ipu2_csi1>;
+
+       /* enable frame interval monitor on this port */
+       fim {
+               status = "okay";
+       };
+};
+
 &sata {
        status = "okay";
 };
+
+&iomuxc {
+       video {
+               pinctrl_adv7180: adv7180grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_D30__GPIO3_IO30
 0x0001b0b0
+                               MX6QDL_PAD_EIM_D31__GPIO3_IO31
 0x4001b0b0
+                       >;
+               };
+
+               pinctrl_ipu2_csi1: ipu2_csi1grp { /* IPU2_CSI1: 8-bit input */
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_EB2__IPU2_CSI1_DATA19    0x1b0b0
+                               MX6QDL_PAD_EIM_D16__IPU2_CSI1_DATA18    0x1b0b0
+                               MX6QDL_PAD_EIM_D18__IPU2_CSI1_DATA17    0x1b0b0
+                               MX6QDL_PAD_EIM_D19__IPU2_CSI1_DATA16    0x1b0b0
+                               MX6QDL_PAD_EIM_D20__IPU2_CSI1_DATA15    0x1b0b0
+                               MX6QDL_PAD_EIM_D26__IPU2_CSI1_DATA14    0x1b0b0
+                               MX6QDL_PAD_EIM_D27__IPU2_CSI1_DATA13    0x1b0b0
+                               MX6QDL_PAD_EIM_A17__IPU2_CSI1_DATA12    0x1b0b0
+                               MX6QDL_PAD_EIM_D29__IPU2_CSI1_VSYNC     0x1b0b0
+                               MX6QDL_PAD_EIM_EB3__IPU2_CSI1_HSYNC     0x1b0b0
+                               MX6QDL_PAD_EIM_A16__IPU2_CSI1_PIXCLK    0x1b0b0
+                       >;
+               };
+       };
+};
+

Here's my userspace test commands:

media-ctl -r # reset all links
export outputfmt="UYVY2X8/720x480"
# Setup links (ADV7180 IPU2_CSI1)
media-ctl -l '"adv7180 2-0020":0 -> "ipu2_csi1_mux":1[1]'
media-ctl -l '"ipu2_csi1_mux":2 -> "ipu2_csi1":0[1]'
media-ctl -l '"ipu2_csi1":1 -> "ipu2_vdic":0[1]'
media-ctl -l '"ipu2_vdic":2 -> "ipu2_ic_prp":0[1]'
media-ctl -l '"ipu2_ic_prp":2 -> "ipu2_ic_prpvf":0[1]'
media-ctl -l '"ipu2_ic_prpvf":1 -> "ipu2_ic_prpvf capture":0[1]'
# Configure pads
media-ctl -V "'adv7180 2-0020':0 [fmt:UYVY2X8/720x480]"
media-ctl -V "'ipu2_csi1_mux':2 [fmt:UYVY2X8/720x480 field:interlaced]"
media-ctl -V "'ipu2_csi1':1 [fmt:UYVY2X8/720x480 field:interlaced]"
media-ctl -V "'ipu2_vdic':2 [fmt:UYVY2X8/720x480 field:none]"
media-ctl -V "'ipu2_ic_prp':2 [fmt:AYUV32/720x480 field:none]"
media-ctl -V "'ipu2_ic_prpvf':1 [fmt:$outputfmt field:none]"
^^^^ no errors up to this point; streaming can now begin on
'ipu2_ic_prpvf capture'

# select input
v4l2-ctl --device /dev/video3 -i0 # 0=AIN1 1=AIN2 2=AIN3
VIDIOC_S_INPUT: failed: Inappropriate ioctl for device
^^^^ /sys/class/video4linux/v4l-subdev2/name is 'ipu2_ic_prpvf
capture' - is this not right?

# select any supported YUV or RGB pixelformat on the capture device node
v4l2-ctl --device /dev/video3
--set-fmt-video=width=720,height=480,pixelformat=UYVY
v4l2-ctl --device /dev/video3 --stream-mmap --stream-to=/x.raw
--stream-count=1 # capture single raw-frame
[  904.870444] ipu2_ic_prpvf: EOF timeout
VIDIOC_DQBUF: failed: Input/output error
[  905.910702] ipu2_ic_prpvf: wait last EOF timeout
^^^^ not getting any frames

The last patchset of yours I had running on this board was your v3
patchset - any ideas?

As it looks like things have settled down with this patchset and it
sounds like it will get merged for 4.13 I'm going to start working on
a driver for the tda1997x HDMI receiver which is also on this board
connected to IPU1_CSI0.

Thanks,

Tim
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-06-02  0:25 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-25  0:29 [PATCH v7 00/34] i.MX Media Driver Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 01/34] dt-bindings: Add bindings for video-multiplexer device Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 02/34] [media] dt-bindings: Add bindings for i.MX media driver Steve Longerbeam
     [not found] ` <1495672189-29164-1-git-send-email-steve_longerbeam-nmGgyN9QBj3QT0dZR+AlfA@public.gmane.org>
2017-05-25  0:29   ` [PATCH v7 03/34] [media] dt/bindings: Add bindings for OV5640 Steve Longerbeam
2017-05-25  0:29   ` [PATCH v7 17/34] platform: add video-multiplexer subdevice driver Steve Longerbeam
2017-05-25  0:29   ` [PATCH v7 24/34] media: imx: Add IC subdev drivers Steve Longerbeam
2017-05-25  0:29   ` [PATCH v7 31/34] media: imx: csi: add frame size/interval enumeration Steve Longerbeam
2017-05-25  0:29   ` [PATCH v7 32/34] media: imx: capture: add frame sizes/interval enumeration Steve Longerbeam
2017-06-02  0:25   ` Tim Harvey [this message]
2017-06-02  0:43     ` [PATCH v7 00/34] i.MX Media Driver Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 04/34] ARM: dts: imx6qdl: add multiplexer controls Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 05/34] ARM: dts: imx6qdl: Add compatible, clocks, irqs to MIPI CSI-2 node Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 06/34] ARM: dts: imx6qdl: Add video multiplexers, mipi_csi, and their connections Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 07/34] ARM: dts: imx6qdl: add capture-subsystem device Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 08/34] ARM: dts: imx6qdl-sabrelite: remove erratum ERR006687 workaround Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 09/34] ARM: dts: imx6-sabrelite: add OV5642 and OV5640 camera sensors Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 10/34] ARM: dts: imx6-sabresd: " Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 11/34] ARM: dts: imx6-sabreauto: create i2cmux for i2c3 Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 12/34] ARM: dts: imx6-sabreauto: add reset-gpios property for max7310_b Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 13/34] ARM: dts: imx6-sabreauto: add pinctrl for gpt input capture Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 14/34] ARM: dts: imx6-sabreauto: add the ADV7180 video decoder Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 15/34] add mux and video interface bridge entity functions Steve Longerbeam
     [not found]   ` <1495672189-29164-16-git-send-email-steve_longerbeam-nmGgyN9QBj3QT0dZR+AlfA@public.gmane.org>
2017-05-29 13:37     ` Hans Verkuil
     [not found]       ` <3d3f0c9f-7315-69f0-877e-04b33c498c46-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2017-05-29 13:51         ` Philipp Zabel
     [not found]           ` <1496065877.17695.82.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2017-05-29 13:52             ` Hans Verkuil
2017-05-25  0:29 ` [PATCH v7 16/34] [media] add Omnivision OV5640 sensor driver Steve Longerbeam
2017-05-29 13:39   ` Hans Verkuil
2017-05-29 15:55   ` Sakari Ailus
2017-05-29 21:49     ` Steve Longerbeam
2017-05-29 21:50     ` Steve Longerbeam
2017-05-30  6:56       ` Sakari Ailus
     [not found]         ` <20170530065632.GK29527-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2017-06-03 18:02           ` Steve Longerbeam
2017-06-04 18:00             ` Steve Longerbeam
2017-06-07 12:31               ` Sakari Ailus
     [not found]   ` <1495672189-29164-17-git-send-email-steve_longerbeam-nmGgyN9QBj3QT0dZR+AlfA@public.gmane.org>
2017-05-31 19:58     ` Pavel Machek
2017-06-01  8:26       ` Sakari Ailus
2017-06-01  8:43         ` exposure vs. exposure_absolute was " Pavel Machek
     [not found]         ` <20170601082659.GJ1019-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2017-06-03 19:38           ` Steve Longerbeam
     [not found]             ` <755909bf-d1de-e0f3-1569-0d4b16e26817-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-06-03 19:51               ` Pavel Machek
2017-06-03 21:57                 ` Sakari Ailus
     [not found]                   ` <20170603215709.GU1019-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2017-06-03 22:17                     ` Pavel Machek
2017-06-04  4:46                     ` Steve Longerbeam
     [not found]                       ` <d51acbaa-0dc6-ce5c-5442-62c5c24ad6da-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-06-07 12:31                         ` Sakari Ailus
2017-05-25  0:29 ` [PATCH v7 18/34] platform: video-mux: include temporary mmio-mux support Steve Longerbeam
     [not found]   ` <1495672189-29164-19-git-send-email-steve_longerbeam-nmGgyN9QBj3QT0dZR+AlfA@public.gmane.org>
2017-05-25  7:51     ` kbuild test robot
2017-05-25  7:51   ` [PATCH] platform: video-mux: fix ptr_ret.cocci warnings kbuild test robot
2017-05-25  0:29 ` [PATCH v7 19/34] media: Add userspace header file for i.MX Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 20/34] media: Add i.MX media core driver Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 21/34] media: imx: Add Capture Device Interface Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 22/34] media: imx: Add CSI subdev driver Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 23/34] media: imx: Add VDIC " Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 25/34] media: imx: Add MIPI CSI-2 Receiver " Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 26/34] ARM: imx_v6_v7_defconfig: Enable staging video4linux drivers Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 27/34] media: imx: csi: add support for bayer formats Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 28/34] media: imx: csi: increase burst size for YUV formats Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 29/34] media: imx: csi: add frame skipping support Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 30/34] media: imx: csi: add sink selection rectangles Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 33/34] media: imx: set and propagate default field, colorimetry Steve Longerbeam
2017-05-25  0:29 ` [PATCH v7 34/34] media: imx: Drop warning upon multiple S_STREAM disable calls Steve Longerbeam
2017-05-29 13:46 ` [PATCH v7 00/34] i.MX Media Driver Hans Verkuil
     [not found]   ` <dd82968a-4c0b-12a4-f43b-7e63a255812d-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2017-05-29 14:15     ` Philipp Zabel
     [not found]       ` <1496067346.17695.91.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2017-05-29 14:21         ` Hans Verkuil
     [not found]           ` <58c82482-d7d0-93cb-1e12-9749233bc5f3-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2017-05-29 15:24             ` Hans Verkuil
2017-05-29 17:23     ` Steve Longerbeam
     [not found]       ` <85c134d0-80f1-4313-2028-61bdad37903e-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-05-29 17:29         ` Hans Verkuil
2017-05-29 15:36   ` Sakari Ailus
     [not found]     ` <20170529153637.GH29527-S+BSfZ9RZZmRSg0ZkenSGLdO1Tsj/99ntUK59QYPAWc@public.gmane.org>
2017-05-29 16:29       ` Hans Verkuil
2017-05-29 18:12     ` Steve Longerbeam
     [not found]       ` <08dcd6f6-e0ef-a6a0-cfc3-4fcd55624169-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-05-31 20:11         ` Pavel Machek

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=CAJ+vNU2K1g32HTbJktLYaCGWLbPs19HSM_PMNryPBqQC-O77vw@mail.gmail.com \
    --to=tharvey-ummoyl/hms+akbo8gow8eq@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=bparrot-l0cyMroinI0@public.gmane.org \
    --cc=fabio.estevam-3arQi8VN3Tc@public.gmane.org \
    --cc=geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org \
    --cc=horms+renesas-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org \
    --cc=hverkuil-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org \
    --cc=jean-christophe.trotin-qxv4g6HH51o@public.gmane.org \
    --cc=kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=laurent.pinchart+renesas-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org \
    --cc=linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=markus.heiser-m1Uo1GnMJf0b1SvskN2V4Q@public.gmane.org \
    --cc=mchehab-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=minghsiu.tsai-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
    --cc=nick-gcszYUEDH4VrovVCs/uTlw@public.gmane.org \
    --cc=p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=shawnguo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=slongerbeam-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=sudipm.mukherjee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=tiffany.lin-NuS5LvNUpcJWk0Htik3J/w@public.gmane.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).