All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
To: Mitch Bradley <wmb-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
Cc: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>,
	Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
	linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>,
	Jesse Barnes <jbarnes-Y1mF5jBUw70BENJcbMCuUQ@public.gmane.org>,
	Colin Cross <ccross-z5hGa2qSFaRBDgjK7y7TUQ@public.gmane.org>,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCH v2 07/10] ARM: tegra: pcie: Add device tree support
Date: Thu, 14 Jun 2012 11:19:06 +0200	[thread overview]
Message-ID: <20120614091905.GA9081@avionic-0098.mockup.avionic-design.de> (raw)
In-Reply-To: <4FD85127.8050301-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 7079 bytes --]

On Tue, Jun 12, 2012 at 10:36:55PM -1000, Mitch Bradley wrote:
> On 6/12/2012 10:19 PM, Thierry Reding wrote:
> >On Tue, Jun 12, 2012 at 10:05:35PM -1000, Mitch Bradley wrote:
> >>On 6/12/2012 9:52 PM, Thierry Reding wrote:
> >>>I think the configuration spaces and downstream I/O ranges need to be in the
> >>>pcie-controller's reg property because they are remapped and used by the
> >>>controller driver, not by the individual ports.
> >>>
> >>>That's probably not really necessary but rather a result of how the driver
> >>>was written. Perhaps the driver should handle them differently instead,
> >>>listing the regions in the ranges property of the parent and listing the
> >>>corresponding partitions in the ranges properties of the pci child nodes.
> >>>
> >>>Like in the following, where the ranges property of the ports partition the
> >>>ranges passed from the parent evenly:
> >>>
> >>>	pcie-controller {
> >>>		compatible = "nvidia,tegra20-pcie";
> >>>		reg =<0x80003000 0x00000800   /* PADS registers */
> >>>		       0x80003800 0x00000200>; /* AFI registers */
> >>>		interrupts =<0 98 0x04   /* controller interrupt */
> >>>			      0 99 0x04>; /* MSI interrupt */
> >>>		status = "disabled";
> >>>
> >>>		ranges =<0x80000000 0x80000000 0x00002000   /* 2 root ports */
> >>>			  0x80004000 0x80004000 0x00100000   /* configuration space */
> >>>			  0x80104000 0x80100000 0x00100000   /* extended configuration space */
> >>>			  0x80400000 0x80400000 0x00010000   /* downstream I/O */
> >>>			  0x90000000 0x90000000 0x10000000   /* non-prefetchable memory */
> >>>			  0xa0000000 0xa0000000 0x10000000>; /* prefetchable memory */
> >>>
> >>>		#address-cells =<1>;
> >>>		#size-cells =<1>;
> >>>
> >>>		pci@80000000 {
> >>>			reg =<0x80000000 0x00001000>;
> >>>			status = "disabled";
> >>>
> >>>			#address-cells =<3>;
> >>>			#size-cells =<2>;
> >>>
> >>>			ranges =<0x80400000 0x80400000 0x00008000   /* I/O */
> >>>				  0x90000000 0x90000000 0x08000000   /* non-prefetchable memory */
> >>>				  0xa0000000 0xa0000000 0x08000000>; /* prefetchable memory */
> >>
> >>You are on the right track here, but the format of the child-address
> >>portion of the above ranges property is incorrect.  Since the child
> >>address space is the PCI address space, the child-address portion
> >>needs to be 3 cells.  It's not a linear address but rather a triple.
> >>The first cell identifies the address type (config, I/O, memory..)
> >>and the second and third cells are offsets within that subspace.
> >>The second and third cells will typically be 0.  The PCI binding has
> >>details.
> 
> Also, the size field in ranges is specified according to the child
> address space, so there must be 2 size cells in the ranges at this
> level.  Each ranges entry at this level is:
> 
> <child_address_space, child_address_high, child_address_low,
> parent_address, child_size_high, child_size_low>
> 
> The above should be:
> 
> 			ranges =<0x81000000 0 0  0x80400000  0 0x00008000   /* I/O */
> 				 0x82000000 0 0  0x90000000  0 0x08000000   /* non-prefetchable memory */
> 				 0xc2000000 0 0  0xa0000000  0 0x08000000>; /* prefetchable memory */
> 
> 

Okay, so the new pcie-controller node looks like this:

	pcie-controller {
		compatible = "nvidia,tegra20-pcie", "simple-bus";
		reg = <0x80003000 0x00000800   /* PADS registers */
		       0x80003800 0x00000200   /* AFI registers */
		       0x80004000 0x00100000   /* configuration space */
		       0x80104000 0x00100000>; /* extended configuration space */
		interrupts = <0 98 0x04   /* controller interrupt */
		              0 99 0x04>; /* MSI interrupt */
		status = "disabled";

		ranges = <0x80000000 0x80000000 0x00002000   /* 2 root ports */
			  0x80400000 0x80400000 0x00010000   /* downstream I/O */
			  0x90000000 0x90000000 0x10000000   /* non-prefetchable memory */
			  0xa0000000 0xa0000000 0x10000000>; /* prefetchable memory */

		#address-cells = <1>;
		#size-cells = <1>;

		pci@80000000 {
			compatible = "nvidia,tegra20-pcie-port";
			reg = <0x80000000 0x00001000>;
			status = "disabled";

			#address-cells = <3>;
			#size-cells = <2>;

			ranges = <0x81000000 0 0 0x80400000 0 0x00008000   /* I/O */
				  0x82000000 0 0 0x90000000 0 0x08000000   /* non-prefetchable memory */
				  0xc2000000 0 0 0xa0000000 0 0x08000000>; /* prefetchable memory */

			nvidia,ctrl-offset = <0x110>;
			nvidia,num-lanes = <2>;
		};

		pci@80001000 {
			compatible = "nvidia,tegra20-pcie-port";
			reg = <0x80001000 0x00001000>;
			status = "disabled";

			#address-cells = <3>;
			#size-cells = <2>;

			ranges = <0x81000000 0 0 0x80408000 0 0x00008000   /* I/O */
				  0x82000000 0 0 0x98000000 0 0x08000000   /* non-prefetchable memory */
				  0xc2000000 0 0 0xa8000000 0 0x08000000>; /* prefetchable memory */

			nvidia,ctrl-offset = <0x118>;
			nvidia,num-lanes = <2>;
		};
	};

While looking into some more code, trying to figure out how to hook this all
up with the device tree I ran into a problem. I need to actually create a
'struct device' for each of the ports, so I added the "simple-bus" to the
pcie-controller's "compatible" property. Furthermore, each PCI root port now
becomes a platform_device, which are supported by a new tegra-pcie-port
driver. I'm not sure if "port" is very common in PCI speek, so something like
tegra-pcie-bridge (compatible = "nvidia,tegra20-pcie-bridge") may be more
appropriate?

Using real platform devices is not only more straightforward (each bridge is
after all a separate parent for the PCI endpoints) but it also has the
advantage that the bridges are properly hooked up with the device tree. If I
read the code correctly, passing the 'struct device' to pci_scan_root_bus()
will allow the PCI core code to set up the proper pointers that allow busses
and endpoints below each bridge to be matched to the corresponding DT nodes.

However this causes other problems with the initialization of the PCIe
controller. The translations cannot be setup and the controller shouldn't be
enabled until after all the ports have been probed because it isn't clear
which of them are really active and which are not. For the DT case this can
probably be done by parsing the device tree and collecting the information,
but for the non-DT case this will probably be more difficult.

To solve this for both cases I could probably use device_for_each_child() and
check that all children have been properly probed before setting up the
translations and enabling the controller. That leaves the question of how to
verify that a device has been correctly probed. The easiest would probably be
to check if dev_get_drvdata() != NULL, but I'm still trying to decide whether
that's too ugly or not. I don't know of any other way to determine that
probing was successful. In addition it may still be useful to continue if one
of the devices failed to initialize (the link on only one of two enabled
ports is up).

Thierry

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Thierry Reding <thierry.reding@avionic-design.de>
To: Mitch Bradley <wmb@firmworks.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>,
	Russell King <linux@arm.linux.org.uk>,
	linux-pci@vger.kernel.org, devicetree-discuss@lists.ozlabs.org,
	Rob Herring <rob.herring@calxeda.com>,
	Jesse Barnes <jbarnes@virtuousgeek.org>,
	Colin Cross <ccross@android.com>,
	linux-tegra@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 07/10] ARM: tegra: pcie: Add device tree support
Date: Thu, 14 Jun 2012 11:19:06 +0200	[thread overview]
Message-ID: <20120614091905.GA9081@avionic-0098.mockup.avionic-design.de> (raw)
In-Reply-To: <4FD85127.8050301@firmworks.com>

[-- Attachment #1: Type: text/plain, Size: 7079 bytes --]

On Tue, Jun 12, 2012 at 10:36:55PM -1000, Mitch Bradley wrote:
> On 6/12/2012 10:19 PM, Thierry Reding wrote:
> >On Tue, Jun 12, 2012 at 10:05:35PM -1000, Mitch Bradley wrote:
> >>On 6/12/2012 9:52 PM, Thierry Reding wrote:
> >>>I think the configuration spaces and downstream I/O ranges need to be in the
> >>>pcie-controller's reg property because they are remapped and used by the
> >>>controller driver, not by the individual ports.
> >>>
> >>>That's probably not really necessary but rather a result of how the driver
> >>>was written. Perhaps the driver should handle them differently instead,
> >>>listing the regions in the ranges property of the parent and listing the
> >>>corresponding partitions in the ranges properties of the pci child nodes.
> >>>
> >>>Like in the following, where the ranges property of the ports partition the
> >>>ranges passed from the parent evenly:
> >>>
> >>>	pcie-controller {
> >>>		compatible = "nvidia,tegra20-pcie";
> >>>		reg =<0x80003000 0x00000800   /* PADS registers */
> >>>		       0x80003800 0x00000200>; /* AFI registers */
> >>>		interrupts =<0 98 0x04   /* controller interrupt */
> >>>			      0 99 0x04>; /* MSI interrupt */
> >>>		status = "disabled";
> >>>
> >>>		ranges =<0x80000000 0x80000000 0x00002000   /* 2 root ports */
> >>>			  0x80004000 0x80004000 0x00100000   /* configuration space */
> >>>			  0x80104000 0x80100000 0x00100000   /* extended configuration space */
> >>>			  0x80400000 0x80400000 0x00010000   /* downstream I/O */
> >>>			  0x90000000 0x90000000 0x10000000   /* non-prefetchable memory */
> >>>			  0xa0000000 0xa0000000 0x10000000>; /* prefetchable memory */
> >>>
> >>>		#address-cells =<1>;
> >>>		#size-cells =<1>;
> >>>
> >>>		pci@80000000 {
> >>>			reg =<0x80000000 0x00001000>;
> >>>			status = "disabled";
> >>>
> >>>			#address-cells =<3>;
> >>>			#size-cells =<2>;
> >>>
> >>>			ranges =<0x80400000 0x80400000 0x00008000   /* I/O */
> >>>				  0x90000000 0x90000000 0x08000000   /* non-prefetchable memory */
> >>>				  0xa0000000 0xa0000000 0x08000000>; /* prefetchable memory */
> >>
> >>You are on the right track here, but the format of the child-address
> >>portion of the above ranges property is incorrect.  Since the child
> >>address space is the PCI address space, the child-address portion
> >>needs to be 3 cells.  It's not a linear address but rather a triple.
> >>The first cell identifies the address type (config, I/O, memory..)
> >>and the second and third cells are offsets within that subspace.
> >>The second and third cells will typically be 0.  The PCI binding has
> >>details.
> 
> Also, the size field in ranges is specified according to the child
> address space, so there must be 2 size cells in the ranges at this
> level.  Each ranges entry at this level is:
> 
> <child_address_space, child_address_high, child_address_low,
> parent_address, child_size_high, child_size_low>
> 
> The above should be:
> 
> 			ranges =<0x81000000 0 0  0x80400000  0 0x00008000   /* I/O */
> 				 0x82000000 0 0  0x90000000  0 0x08000000   /* non-prefetchable memory */
> 				 0xc2000000 0 0  0xa0000000  0 0x08000000>; /* prefetchable memory */
> 
> 

Okay, so the new pcie-controller node looks like this:

	pcie-controller {
		compatible = "nvidia,tegra20-pcie", "simple-bus";
		reg = <0x80003000 0x00000800   /* PADS registers */
		       0x80003800 0x00000200   /* AFI registers */
		       0x80004000 0x00100000   /* configuration space */
		       0x80104000 0x00100000>; /* extended configuration space */
		interrupts = <0 98 0x04   /* controller interrupt */
		              0 99 0x04>; /* MSI interrupt */
		status = "disabled";

		ranges = <0x80000000 0x80000000 0x00002000   /* 2 root ports */
			  0x80400000 0x80400000 0x00010000   /* downstream I/O */
			  0x90000000 0x90000000 0x10000000   /* non-prefetchable memory */
			  0xa0000000 0xa0000000 0x10000000>; /* prefetchable memory */

		#address-cells = <1>;
		#size-cells = <1>;

		pci@80000000 {
			compatible = "nvidia,tegra20-pcie-port";
			reg = <0x80000000 0x00001000>;
			status = "disabled";

			#address-cells = <3>;
			#size-cells = <2>;

			ranges = <0x81000000 0 0 0x80400000 0 0x00008000   /* I/O */
				  0x82000000 0 0 0x90000000 0 0x08000000   /* non-prefetchable memory */
				  0xc2000000 0 0 0xa0000000 0 0x08000000>; /* prefetchable memory */

			nvidia,ctrl-offset = <0x110>;
			nvidia,num-lanes = <2>;
		};

		pci@80001000 {
			compatible = "nvidia,tegra20-pcie-port";
			reg = <0x80001000 0x00001000>;
			status = "disabled";

			#address-cells = <3>;
			#size-cells = <2>;

			ranges = <0x81000000 0 0 0x80408000 0 0x00008000   /* I/O */
				  0x82000000 0 0 0x98000000 0 0x08000000   /* non-prefetchable memory */
				  0xc2000000 0 0 0xa8000000 0 0x08000000>; /* prefetchable memory */

			nvidia,ctrl-offset = <0x118>;
			nvidia,num-lanes = <2>;
		};
	};

While looking into some more code, trying to figure out how to hook this all
up with the device tree I ran into a problem. I need to actually create a
'struct device' for each of the ports, so I added the "simple-bus" to the
pcie-controller's "compatible" property. Furthermore, each PCI root port now
becomes a platform_device, which are supported by a new tegra-pcie-port
driver. I'm not sure if "port" is very common in PCI speek, so something like
tegra-pcie-bridge (compatible = "nvidia,tegra20-pcie-bridge") may be more
appropriate?

Using real platform devices is not only more straightforward (each bridge is
after all a separate parent for the PCI endpoints) but it also has the
advantage that the bridges are properly hooked up with the device tree. If I
read the code correctly, passing the 'struct device' to pci_scan_root_bus()
will allow the PCI core code to set up the proper pointers that allow busses
and endpoints below each bridge to be matched to the corresponding DT nodes.

However this causes other problems with the initialization of the PCIe
controller. The translations cannot be setup and the controller shouldn't be
enabled until after all the ports have been probed because it isn't clear
which of them are really active and which are not. For the DT case this can
probably be done by parsing the device tree and collecting the information,
but for the non-DT case this will probably be more difficult.

To solve this for both cases I could probably use device_for_each_child() and
check that all children have been properly probed before setting up the
translations and enabling the controller. That leaves the question of how to
verify that a device has been correctly probed. The easiest would probably be
to check if dev_get_drvdata() != NULL, but I'm still trying to decide whether
that's too ugly or not. I don't know of any other way to determine that
probing was successful. In addition it may still be useful to continue if one
of the devices failed to initialize (the link on only one of two enabled
ports is up).

Thierry

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: thierry.reding@avionic-design.de (Thierry Reding)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 07/10] ARM: tegra: pcie: Add device tree support
Date: Thu, 14 Jun 2012 11:19:06 +0200	[thread overview]
Message-ID: <20120614091905.GA9081@avionic-0098.mockup.avionic-design.de> (raw)
In-Reply-To: <4FD85127.8050301@firmworks.com>

On Tue, Jun 12, 2012 at 10:36:55PM -1000, Mitch Bradley wrote:
> On 6/12/2012 10:19 PM, Thierry Reding wrote:
> >On Tue, Jun 12, 2012 at 10:05:35PM -1000, Mitch Bradley wrote:
> >>On 6/12/2012 9:52 PM, Thierry Reding wrote:
> >>>I think the configuration spaces and downstream I/O ranges need to be in the
> >>>pcie-controller's reg property because they are remapped and used by the
> >>>controller driver, not by the individual ports.
> >>>
> >>>That's probably not really necessary but rather a result of how the driver
> >>>was written. Perhaps the driver should handle them differently instead,
> >>>listing the regions in the ranges property of the parent and listing the
> >>>corresponding partitions in the ranges properties of the pci child nodes.
> >>>
> >>>Like in the following, where the ranges property of the ports partition the
> >>>ranges passed from the parent evenly:
> >>>
> >>>	pcie-controller {
> >>>		compatible = "nvidia,tegra20-pcie";
> >>>		reg =<0x80003000 0x00000800   /* PADS registers */
> >>>		       0x80003800 0x00000200>; /* AFI registers */
> >>>		interrupts =<0 98 0x04   /* controller interrupt */
> >>>			      0 99 0x04>; /* MSI interrupt */
> >>>		status = "disabled";
> >>>
> >>>		ranges =<0x80000000 0x80000000 0x00002000   /* 2 root ports */
> >>>			  0x80004000 0x80004000 0x00100000   /* configuration space */
> >>>			  0x80104000 0x80100000 0x00100000   /* extended configuration space */
> >>>			  0x80400000 0x80400000 0x00010000   /* downstream I/O */
> >>>			  0x90000000 0x90000000 0x10000000   /* non-prefetchable memory */
> >>>			  0xa0000000 0xa0000000 0x10000000>; /* prefetchable memory */
> >>>
> >>>		#address-cells =<1>;
> >>>		#size-cells =<1>;
> >>>
> >>>		pci at 80000000 {
> >>>			reg =<0x80000000 0x00001000>;
> >>>			status = "disabled";
> >>>
> >>>			#address-cells =<3>;
> >>>			#size-cells =<2>;
> >>>
> >>>			ranges =<0x80400000 0x80400000 0x00008000   /* I/O */
> >>>				  0x90000000 0x90000000 0x08000000   /* non-prefetchable memory */
> >>>				  0xa0000000 0xa0000000 0x08000000>; /* prefetchable memory */
> >>
> >>You are on the right track here, but the format of the child-address
> >>portion of the above ranges property is incorrect.  Since the child
> >>address space is the PCI address space, the child-address portion
> >>needs to be 3 cells.  It's not a linear address but rather a triple.
> >>The first cell identifies the address type (config, I/O, memory..)
> >>and the second and third cells are offsets within that subspace.
> >>The second and third cells will typically be 0.  The PCI binding has
> >>details.
> 
> Also, the size field in ranges is specified according to the child
> address space, so there must be 2 size cells in the ranges at this
> level.  Each ranges entry at this level is:
> 
> <child_address_space, child_address_high, child_address_low,
> parent_address, child_size_high, child_size_low>
> 
> The above should be:
> 
> 			ranges =<0x81000000 0 0  0x80400000  0 0x00008000   /* I/O */
> 				 0x82000000 0 0  0x90000000  0 0x08000000   /* non-prefetchable memory */
> 				 0xc2000000 0 0  0xa0000000  0 0x08000000>; /* prefetchable memory */
> 
> 

Okay, so the new pcie-controller node looks like this:

	pcie-controller {
		compatible = "nvidia,tegra20-pcie", "simple-bus";
		reg = <0x80003000 0x00000800   /* PADS registers */
		       0x80003800 0x00000200   /* AFI registers */
		       0x80004000 0x00100000   /* configuration space */
		       0x80104000 0x00100000>; /* extended configuration space */
		interrupts = <0 98 0x04   /* controller interrupt */
		              0 99 0x04>; /* MSI interrupt */
		status = "disabled";

		ranges = <0x80000000 0x80000000 0x00002000   /* 2 root ports */
			  0x80400000 0x80400000 0x00010000   /* downstream I/O */
			  0x90000000 0x90000000 0x10000000   /* non-prefetchable memory */
			  0xa0000000 0xa0000000 0x10000000>; /* prefetchable memory */

		#address-cells = <1>;
		#size-cells = <1>;

		pci at 80000000 {
			compatible = "nvidia,tegra20-pcie-port";
			reg = <0x80000000 0x00001000>;
			status = "disabled";

			#address-cells = <3>;
			#size-cells = <2>;

			ranges = <0x81000000 0 0 0x80400000 0 0x00008000   /* I/O */
				  0x82000000 0 0 0x90000000 0 0x08000000   /* non-prefetchable memory */
				  0xc2000000 0 0 0xa0000000 0 0x08000000>; /* prefetchable memory */

			nvidia,ctrl-offset = <0x110>;
			nvidia,num-lanes = <2>;
		};

		pci at 80001000 {
			compatible = "nvidia,tegra20-pcie-port";
			reg = <0x80001000 0x00001000>;
			status = "disabled";

			#address-cells = <3>;
			#size-cells = <2>;

			ranges = <0x81000000 0 0 0x80408000 0 0x00008000   /* I/O */
				  0x82000000 0 0 0x98000000 0 0x08000000   /* non-prefetchable memory */
				  0xc2000000 0 0 0xa8000000 0 0x08000000>; /* prefetchable memory */

			nvidia,ctrl-offset = <0x118>;
			nvidia,num-lanes = <2>;
		};
	};

While looking into some more code, trying to figure out how to hook this all
up with the device tree I ran into a problem. I need to actually create a
'struct device' for each of the ports, so I added the "simple-bus" to the
pcie-controller's "compatible" property. Furthermore, each PCI root port now
becomes a platform_device, which are supported by a new tegra-pcie-port
driver. I'm not sure if "port" is very common in PCI speek, so something like
tegra-pcie-bridge (compatible = "nvidia,tegra20-pcie-bridge") may be more
appropriate?

Using real platform devices is not only more straightforward (each bridge is
after all a separate parent for the PCI endpoints) but it also has the
advantage that the bridges are properly hooked up with the device tree. If I
read the code correctly, passing the 'struct device' to pci_scan_root_bus()
will allow the PCI core code to set up the proper pointers that allow busses
and endpoints below each bridge to be matched to the corresponding DT nodes.

However this causes other problems with the initialization of the PCIe
controller. The translations cannot be setup and the controller shouldn't be
enabled until after all the ports have been probed because it isn't clear
which of them are really active and which are not. For the DT case this can
probably be done by parsing the device tree and collecting the information,
but for the non-DT case this will probably be more difficult.

To solve this for both cases I could probably use device_for_each_child() and
check that all children have been properly probed before setting up the
translations and enabling the controller. That leaves the question of how to
verify that a device has been correctly probed. The easiest would probably be
to check if dev_get_drvdata() != NULL, but I'm still trying to decide whether
that's too ugly or not. I don't know of any other way to determine that
probing was successful. In addition it may still be useful to continue if one
of the devices failed to initialize (the link on only one of two enabled
ports is up).

Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120614/69eb44a0/attachment-0001.sig>

  parent reply	other threads:[~2012-06-14  9:19 UTC|newest]

Thread overview: 249+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-11 15:05 [PATCH v2 00/10] ARM: tegra: Add PCIe device tree support Thierry Reding
2012-06-11 15:05 ` Thierry Reding
2012-06-11 15:05 ` Thierry Reding
2012-06-11 15:05 ` [PATCH v2 05/10] ARM: tegra: Rewrite PCIe support as a driver Thierry Reding
2012-06-11 15:05   ` Thierry Reding
2012-06-11 21:09   ` Stephen Warren
2012-06-11 21:09     ` Stephen Warren
     [not found]     ` <4FD65E98.4070200-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12  6:41       ` Thierry Reding
2012-06-12  6:41         ` Thierry Reding
2012-06-12  6:41         ` Thierry Reding
2012-06-12  7:24         ` Thierry Reding
2012-06-12  7:24           ` Thierry Reding
     [not found]           ` <20120612072444.GA8577-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-12 16:00             ` Stephen Warren
2012-06-12 16:00               ` Stephen Warren
2012-06-12 16:00               ` Stephen Warren
2012-06-13  8:12               ` Thierry Reding
2012-06-13  8:12                 ` Thierry Reding
     [not found]   ` <1339427118-32263-6-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-11 21:22     ` Stephen Warren
2012-06-11 21:22       ` Stephen Warren
2012-06-11 21:22       ` Stephen Warren
     [not found]       ` <4FD6617C.4090805-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12  4:59         ` Thierry Reding
2012-06-12  4:59           ` Thierry Reding
2012-06-12  4:59           ` Thierry Reding
2012-06-11 15:05 ` [PATCH v2 06/10] ARM: tegra: pcie: Add MSI support Thierry Reding
2012-06-11 15:05   ` Thierry Reding
     [not found]   ` <1339427118-32263-7-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-11 21:19     ` Stephen Warren
2012-06-11 21:19       ` Stephen Warren
2012-06-11 21:19       ` Stephen Warren
2012-06-12  5:07       ` Thierry Reding
2012-06-12  5:07         ` Thierry Reding
2012-06-12  5:33         ` Stephen Warren
2012-06-12  5:33           ` Stephen Warren
     [not found]           ` <4FD6D4C6.2080201-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12  5:41             ` Thierry Reding
2012-06-12  5:41               ` Thierry Reding
2012-06-12  5:41               ` Thierry Reding
     [not found]         ` <20120612050713.GB3669-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-12  6:10           ` Thierry Reding
2012-06-12  6:10             ` Thierry Reding
2012-06-12  6:10             ` Thierry Reding
     [not found]             ` <20120612061003.GC4040-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-06-12 15:40               ` Stephen Warren
2012-06-12 15:40                 ` Stephen Warren
2012-06-12 15:40                 ` Stephen Warren
2012-06-12 17:23                 ` Thierry Reding
2012-06-12 17:23                   ` Thierry Reding
2012-06-11 15:05 ` [PATCH v2 08/10] ARM: tegra: harmony: Initialize regulators from DT Thierry Reding
2012-06-11 15:05   ` Thierry Reding
2012-06-11 21:36   ` Stephen Warren
2012-06-11 21:36     ` Stephen Warren
     [not found]     ` <4FD664F8.4030800-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12  6:13       ` Thierry Reding
2012-06-12  6:13         ` Thierry Reding
2012-06-12  6:13         ` Thierry Reding
     [not found]   ` <1339427118-32263-9-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-21 20:17     ` Stephen Warren
2012-06-21 20:17       ` Stephen Warren
2012-06-21 20:17       ` Stephen Warren
     [not found]       ` <4FE3815C.8030505-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-22  6:06         ` Thierry Reding
2012-06-22  6:06           ` Thierry Reding
2012-06-22  6:06           ` Thierry Reding
     [not found] ` <1339427118-32263-1-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-11 15:05   ` [PATCH v2 01/10] PCI: Keep pci_fixup_irqs() around after init Thierry Reding
2012-06-11 15:05     ` Thierry Reding
2012-06-11 15:05     ` Thierry Reding
2012-06-11 15:05   ` [PATCH v2 02/10] ARM: pci: Keep pci_common_init() " Thierry Reding
2012-06-11 15:05     ` Thierry Reding
2012-06-11 15:05     ` Thierry Reding
2012-06-11 15:05   ` [PATCH v2 03/10] ARM: pci: Allow passing per-controller private data Thierry Reding
2012-06-11 15:05     ` Thierry Reding
2012-06-11 15:05     ` Thierry Reding
2012-06-11 15:05   ` [PATCH v2 04/10] ARM: tegra: Move tegra_pcie_xclk_clamp() to PMC Thierry Reding
2012-06-11 15:05     ` Thierry Reding
2012-06-11 15:05     ` Thierry Reding
2012-06-11 15:05   ` [PATCH v2 07/10] ARM: tegra: pcie: Add device tree support Thierry Reding
2012-06-11 15:05     ` Thierry Reding
2012-06-11 15:05     ` Thierry Reding
2012-06-11 21:33     ` Stephen Warren
2012-06-11 21:33       ` Stephen Warren
2012-06-12  6:21       ` Thierry Reding
2012-06-12  6:21         ` Thierry Reding
2012-06-12 15:44         ` Stephen Warren
2012-06-12 15:44           ` Stephen Warren
     [not found]           ` <4FD763C5.3090500-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12 17:20             ` Thierry Reding
2012-06-12 17:20               ` Thierry Reding
2012-06-12 17:20               ` Thierry Reding
     [not found]               ` <20120612172041.GA28010-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-06-12 19:10                 ` Mitch Bradley
2012-06-12 19:10                   ` Mitch Bradley
     [not found]                   ` <4FD7943E.60302-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-12 19:46                     ` Stephen Warren
2012-06-12 19:46                       ` Stephen Warren
2012-06-12 19:46                       ` Stephen Warren
2012-06-12 19:52                       ` Mitch Bradley
2012-06-12 19:52                         ` Mitch Bradley
     [not found]                         ` <4FD79DE8.90603-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-13  5:54                           ` Thierry Reding
2012-06-13  5:54                             ` Thierry Reding
2012-06-13  5:54                             ` Thierry Reding
2012-06-13  7:04                             ` Mitch Bradley
2012-06-13  7:04                               ` Mitch Bradley
2012-06-12 20:15               ` Stephen Warren
2012-06-12 20:15                 ` Stephen Warren
2012-06-12 21:11                 ` Mitch Bradley
2012-06-12 21:11                   ` Mitch Bradley
2012-06-13  6:45                   ` Thierry Reding
2012-06-13  6:45                     ` Thierry Reding
     [not found]                     ` <20120613064519.GD31001-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-13  7:28                       ` Mitch Bradley
2012-06-13  7:28                         ` Mitch Bradley
2012-06-13  7:28                         ` Mitch Bradley
     [not found]                         ` <4FD84133.4060401-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-13  7:52                           ` Thierry Reding
2012-06-13  7:52                             ` Thierry Reding
2012-06-13  7:52                             ` Thierry Reding
     [not found]                             ` <20120613075232.GA6139-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-13  8:05                               ` Mitch Bradley
2012-06-13  8:05                                 ` Mitch Bradley
2012-06-13  8:05                                 ` Mitch Bradley
     [not found]                                 ` <4FD849CF.4030009-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-13  8:19                                   ` Thierry Reding
2012-06-13  8:19                                     ` Thierry Reding
2012-06-13  8:19                                     ` Thierry Reding
     [not found]                                     ` <20120613081910.GB6528-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-13  8:36                                       ` Mitch Bradley
2012-06-13  8:36                                         ` Mitch Bradley
2012-06-13  8:36                                         ` Mitch Bradley
2012-06-13  8:42                                         ` Thierry Reding
2012-06-13  8:42                                           ` Thierry Reding
     [not found]                                         ` <4FD85127.8050301-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-14  9:19                                           ` Thierry Reding [this message]
2012-06-14  9:19                                             ` Thierry Reding
2012-06-14  9:19                                             ` Thierry Reding
     [not found]                                             ` <20120614091905.GA9081-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-14 18:30                                               ` Stephen Warren
2012-06-14 18:30                                                 ` Stephen Warren
2012-06-14 18:30                                                 ` Stephen Warren
     [not found]                                                 ` <4FDA2DDA.1030704-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-14 19:29                                                   ` Thierry Reding
2012-06-14 19:29                                                     ` Thierry Reding
2012-06-14 19:29                                                     ` Thierry Reding
     [not found]                                                     ` <20120614192903.GA2212-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-14 19:50                                                       ` Stephen Warren
2012-06-14 19:50                                                         ` Stephen Warren
2012-06-14 19:50                                                         ` Stephen Warren
     [not found]                                                         ` <4FDA40A0.4030206-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-15  6:12                                                           ` Thierry Reding
2012-06-15  6:12                                                             ` Thierry Reding
2012-06-15  6:12                                                             ` Thierry Reding
2012-06-19 13:30                                                             ` Thierry Reding
2012-06-19 13:30                                                               ` Thierry Reding
     [not found]                                                               ` <20120619133001.GB24138-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-19 16:40                                                                 ` Stephen Warren
2012-06-19 16:40                                                                   ` Stephen Warren
2012-06-19 16:40                                                                   ` Stephen Warren
2012-06-19 21:31                                                               ` Mitch Bradley
2012-06-19 21:31                                                                 ` Mitch Bradley
2012-06-20 16:32                                                                 ` Stephen Warren
2012-06-20 16:32                                                                   ` Stephen Warren
2012-06-20 17:41                                                                   ` Mitch Bradley
2012-06-20 17:41                                                                     ` Mitch Bradley
     [not found]                                                                     ` <4FE20B34.2090305-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-20 17:47                                                                       ` Stephen Warren
2012-06-20 17:47                                                                         ` Stephen Warren
2012-06-20 17:47                                                                         ` Stephen Warren
2012-06-20 19:57                                                                 ` Arnd Bergmann
2012-06-20 19:57                                                                   ` Arnd Bergmann
2012-06-20 20:19                                                                   ` Mitch Bradley
2012-06-20 20:19                                                                     ` Mitch Bradley
2012-06-21  6:47                                                                 ` Thierry Reding
2012-06-21  6:47                                                                   ` Thierry Reding
2012-06-21  6:47                                                                   ` Thierry Reding
     [not found]                                                                   ` <20120621064722.GA1122-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-22 10:18                                                                     ` Bjorn Helgaas
2012-06-22 10:18                                                                       ` Bjorn Helgaas
2012-06-22 10:18                                                                       ` Bjorn Helgaas
     [not found]                                                                       ` <CAErSpo6Bpfqm-0yGiBOXEhF4kD3PTDYvWVr0babLZ4GkBLXJiA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-06-22 11:00                                                                         ` Thierry Reding
2012-06-22 11:00                                                                           ` Thierry Reding
2012-06-22 11:00                                                                           ` Thierry Reding
2012-06-22 11:46                                                                           ` Bjorn Helgaas
2012-06-22 11:46                                                                             ` Bjorn Helgaas
2012-06-22 12:43                                                                             ` Thierry Reding
2012-06-22 12:43                                                                               ` Thierry Reding
2012-06-22 13:03                                                                               ` Arnd Bergmann
2012-06-22 13:03                                                                                 ` Arnd Bergmann
     [not found]                                                                                 ` <201206221303.21985.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-22 16:49                                                                                   ` Bjorn Helgaas
2012-06-22 16:49                                                                                     ` Bjorn Helgaas
2012-06-22 16:49                                                                                     ` Bjorn Helgaas
     [not found]                                                                                     ` <CAErSpo56=S2oQ0usYfH28T0178SQUBD=5jqmcKWCT6M5WUQF6g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-06-22 16:53                                                                                       ` Arnd Bergmann
2012-06-22 16:53                                                                                         ` Arnd Bergmann
2012-06-22 16:53                                                                                         ` Arnd Bergmann
     [not found]                                                                                         ` <201206221653.31817.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-22 17:13                                                                                           ` Bjorn Helgaas
2012-06-22 17:13                                                                                             ` Bjorn Helgaas
2012-06-22 17:13                                                                                             ` Bjorn Helgaas
     [not found]                                                                                             ` <CAErSpo5dj99iHW0WNEABPR1OO2yS=BwNezOivu6_7Go8sKyjsQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-06-22 21:08                                                                                               ` Arnd Bergmann
2012-06-22 21:08                                                                                                 ` Arnd Bergmann
2012-06-22 21:08                                                                                                 ` Arnd Bergmann
2012-06-22 17:14                                                                                           ` Arnd Bergmann
2012-06-22 17:14                                                                                             ` Arnd Bergmann
2012-06-22 17:14                                                                                             ` Arnd Bergmann
2012-06-22 17:00                                                                           ` Stephen Warren
2012-06-22 17:00                                                                             ` Stephen Warren
2012-06-22 17:28                                                                             ` Stephen Warren
2012-06-22 17:28                                                                               ` Stephen Warren
2012-06-23 21:35                                                                               ` Bjorn Helgaas
2012-06-23 21:35                                                                                 ` Bjorn Helgaas
     [not found]                                                                               ` <4FE4AB2F.8090402-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-25  6:34                                                                                 ` Thierry Reding
2012-06-25  6:34                                                                                   ` Thierry Reding
2012-06-25  6:34                                                                                   ` Thierry Reding
2012-06-26 17:22                                                                                   ` Stephen Warren
2012-06-26 17:22                                                                                     ` Stephen Warren
     [not found]                                                                                     ` <4FE9EFD8.6010608-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-27  6:19                                                                                       ` Thierry Reding
2012-06-27  6:19                                                                                         ` Thierry Reding
2012-06-27  6:19                                                                                         ` Thierry Reding
2012-06-22 16:20                                                                     ` Stephen Warren
2012-06-22 16:20                                                                       ` Stephen Warren
2012-06-22 16:20                                                                       ` Stephen Warren
2012-06-22 17:09                                                                     ` Mitch Bradley
2012-06-22 17:09                                                                       ` Mitch Bradley
2012-06-22 17:09                                                                       ` Mitch Bradley
2012-06-22 11:04                                                                 ` Thierry Reding
2012-06-22 11:04                                                                   ` Thierry Reding
     [not found]                                                                   ` <20120622110403.GA15710-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-22 13:22                                                                     ` Thierry Reding
2012-06-22 13:22                                                                       ` Thierry Reding
2012-06-22 13:22                                                                       ` Thierry Reding
     [not found]                                                                       ` <20120622132253.GA30704-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-22 13:48                                                                         ` Arnd Bergmann
2012-06-22 13:48                                                                           ` Arnd Bergmann
2012-06-22 13:48                                                                           ` Arnd Bergmann
     [not found]                                                                           ` <201206221348.39346.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-22 14:02                                                                             ` Thierry Reding
2012-06-22 14:02                                                                               ` Thierry Reding
2012-06-22 14:02                                                                               ` Thierry Reding
     [not found]                                                                               ` <20120622140210.GA32097-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-22 16:40                                                                                 ` Arnd Bergmann
2012-06-22 16:40                                                                                   ` Arnd Bergmann
2012-06-22 16:40                                                                                   ` Arnd Bergmann
2012-06-13 20:21                               ` Arnd Bergmann
2012-06-13 20:21                                 ` Arnd Bergmann
2012-06-13 20:21                                 ` Arnd Bergmann
     [not found]                                 ` <201206132021.09774.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-14  8:37                                   ` Thierry Reding
2012-06-14  8:37                                     ` Thierry Reding
2012-06-14  8:37                                     ` Thierry Reding
2012-06-14 10:25                                     ` Arnd Bergmann
2012-06-14 10:25                                       ` Arnd Bergmann
2012-06-14 10:31                                       ` Thierry Reding
2012-06-14 10:31                                         ` Thierry Reding
2012-06-14 11:06                                         ` Arnd Bergmann
2012-06-14 11:06                                           ` Arnd Bergmann
     [not found]                                           ` <201206141106.49142.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-14 11:58                                             ` Thierry Reding
2012-06-14 11:58                                               ` Thierry Reding
2012-06-14 11:58                                               ` Thierry Reding
     [not found]                 ` <4FD7A36B.9090409-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-13  6:34                   ` Thierry Reding
2012-06-13  6:34                     ` Thierry Reding
2012-06-13  6:34                     ` Thierry Reding
     [not found]                     ` <20120613063422.GC31001-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-13 16:20                       ` Stephen Warren
2012-06-13 16:20                         ` Stephen Warren
2012-06-13 16:20                         ` Stephen Warren
2012-06-13 17:03                     ` Stephen Warren
2012-06-13 17:03                       ` Stephen Warren
2012-06-11 15:05   ` [PATCH v2 09/10] ARM: tegra: harmony: Initialize PCIe from DT Thierry Reding
2012-06-11 15:05     ` Thierry Reding
2012-06-11 15:05     ` Thierry Reding
     [not found]     ` <1339427118-32263-10-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-11 21:41       ` Stephen Warren
2012-06-11 21:41         ` Stephen Warren
2012-06-11 21:41         ` Stephen Warren
     [not found]         ` <4FD6661A.1060407-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12  5:48           ` Thierry Reding
2012-06-12  5:48             ` Thierry Reding
2012-06-12  5:48             ` Thierry Reding
     [not found]             ` <20120612054811.GB4040-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-06-12 15:38               ` Stephen Warren
2012-06-12 15:38                 ` Stephen Warren
2012-06-12 15:38                 ` Stephen Warren
2012-06-11 15:05 ` [PATCH v2 10/10] ARM: tegra: trimslice: " Thierry Reding
2012-06-11 15:05   ` Thierry Reding

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=20120614091905.GA9081@avionic-0098.mockup.avionic-design.de \
    --to=thierry.reding-rm9k5ik7kjkj5m59nbduvrnah6klmebb@public.gmane.org \
    --cc=ccross-z5hGa2qSFaRBDgjK7y7TUQ@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=jbarnes-Y1mF5jBUw70BENJcbMCuUQ@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
    --cc=linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
    --cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
    --cc=wmb-D5eQfiDGL7eakBO8gow8eQ@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 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.