All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.com>
To: Peter De Schrijver <pdeschrijver@nvidia.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>,
	Mikko Perttunen <mperttunen@nvidia.com>,
	"tj@kernel.org" <tj@kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	"linux-ide@vger.kernel.org" <linux-ide@vger.kernel.org>
Subject: Re: [PATCH 6/9] ARM: tegra: Export tegra_powergate_power_on
Date: Tue, 8 Jul 2014 15:05:02 +0200	[thread overview]
Message-ID: <20140708130501.GC9516@ulmo> (raw)
In-Reply-To: <20140623101441.GU3407@tbergstrom-lnx.Nvidia.com>

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

On Mon, Jun 23, 2014 at 01:14:42PM +0300, Peter De Schrijver wrote:
> On Thu, Jun 19, 2014 at 06:01:47PM +0200, Stephen Warren wrote:
> > On 06/19/2014 02:02 AM, Peter De Schrijver wrote:
> > > On Wed, Jun 18, 2014 at 05:37:54PM +0200, Stephen Warren wrote:
> > >> On 06/18/2014 06:18 AM, Peter De Schrijver wrote:
> > >>> On Tue, Jun 17, 2014 at 11:51:20PM +0200, Thierry Reding wrote:
> > >>>> * PGP Signed by an unknown key
> > >>>>
> > >>>> On Tue, Jun 17, 2014 at 05:01:46PM +0300, Peter De Schrijver wrote:
> > >>>>> On Tue, Jun 17, 2014 at 02:13:15PM +0200, Thierry Reding wrote:
> > >>>>>>> Old Signed by an unknown key
> > >>>>>>
> > >>>>>> On Mon, Jun 16, 2014 at 04:01:02PM -0600, Stephen Warren wrote:
> > >>>>>>> On 06/04/2014 05:32 AM, Mikko Perttunen wrote:
> > >>>>>>>> This symbol needs to be exported to power on rails without using
> > >>>>>>>> tegra_powergate_sequence_power_up. tegra_powergate_sequence_power_up
> > >>>>>>>> cannot be used in situations where the driver wants to handle clocking
> > >>>>>>>> by itself.
> > >>>>>>>
> > >>>>>>> Thierry, are you OK with this change?
> > >>>>>>
> > >>>>>> I would've preferred tegra_powergate_sequence_power_up() to be used
> > >>>>>
> > >>>>> I don't think the current tegra_powergate_sequence_power_up() API is very well
> > >>>>> defined though. I don't think the clocks and resets required by the sequence
> > >>>>> should be provided by the driver. For one, there can be several clocks and
> > >>>>> resets that need to be controlled for a single domain.
> > >>>>
> > >>>> Do you have any suggestions for what the API should look like? Even if
> > >>>> we plan to move to some different API, I think there's some advantage in
> > >>>> using it consistently if for no other reason than to make it easier to
> > >>>> replace occurrences later on.
> > >>>>
> > >>>
> > >>> I think the API should only have the domain ID as input so:
> > >>>
> > >>> int tegra_powerdomain_on(int id) 
> > >>>
> > >>> /*
> > >>>  * Prerequisites: domain is off
> > >>>  * Result: domain is on, clocks of the modules in the domain are off, modules are in reset
> > >>>  */
> > >>>
> > >>> int tegra_powerdomain_off(int id)
> > >>>
> > >>> /*
> > >>>  * Prerequisites: all clocks of the modules in the domain are off
> > >>>  * result: domain is off
> > >>>  */
> > >>
> > >> That doesn't make sense; the PMC doesn't have access to the clock and
> > >> reset IDs - that's why the API requires them to be passed in.
> > >>
> > > 
> > > We should make driver look them up by name then. It doesn't make sense to
> > > move this knowledge to the drivers as there can be several modules in 1
> > > powerdomain. So every driver would then need to have access to all clock
> > > and reset IDs of the modules of the domain?
> > 
> > Having the drivers know the clocks, resets, and power domains that
> > affect their HW module seems perfectly reasonable.
> > 
> 
> Yes, but the problem is that you also need clocks and reset of other modules
> in the same domain to safely control the domain's status. Eg: the ISPs, VI and
> CSI share a domain. VI and CSI are useable without ISP and the ISP lacks
> public documentation. So it's not unlikely a VI and CSI driver will upstreamed
> someday which means we would need to control the domain and therefore would
> need to tell that driver about the ISPs clocks and resets even though the
> driver doesn't know anything about the ISP hw otherwise.

Can't we make powergates reference counted so that they don't get
disabled as long as there are any users? Looking for example at the
display controller driver, modules don't seem to care overly much about
the powergate's state except that it needs to be turned on before they
touch some of the registers.

From a bit of experimentation it also seems like the sequence encoded
within tegra_powergate_sequence_power_up() isn't at all necessary. I
couldn't find an authoritative reference for that either, so I'm tempted
to conclude that it was simply cargo-culted from the dark-ages.

So I'm thinking that if we ever move to use power domains for this, we
may be able to just drop any extra handling (well, we'd need to keep it
for backwards-compatibility... *sigh*) and let drivers handle the clock
and reset resources.

On the other hand, given that we already need to keep the existing code
for backwards-compatibility, I'm not sure there's a real advantage in
turning them into power domains, since we'd be adding extra code without
an clear gains (especially since it seems like we'd need even more code
to properly handle suspend/resume in drivers that need powergates).

> > Do we actually have any case where unrelated modules are in the same
> > power domain /and/ there's some need for those drivers to manipulate the
> > power domain?
> > 
> 
> According to the TRM, the reset state of the power domains is undefined. While
> that seems unlikely, I do think the kernel should not assume any domain is on
> apart from the obvious ones (like the CPU domain it is running on),

Hm... I thought I had seen some documents specifically giving the reset
states of the power partitions. Perhaps it wasn't in the TRM, though.
But I agree that drivers generally shouldn't be assuming anything about
the power partition states.

Thierry

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

WARNING: multiple messages have this Message-ID (diff)
From: thierry.reding@gmail.com (Thierry Reding)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 6/9] ARM: tegra: Export tegra_powergate_power_on
Date: Tue, 8 Jul 2014 15:05:02 +0200	[thread overview]
Message-ID: <20140708130501.GC9516@ulmo> (raw)
In-Reply-To: <20140623101441.GU3407@tbergstrom-lnx.Nvidia.com>

On Mon, Jun 23, 2014 at 01:14:42PM +0300, Peter De Schrijver wrote:
> On Thu, Jun 19, 2014 at 06:01:47PM +0200, Stephen Warren wrote:
> > On 06/19/2014 02:02 AM, Peter De Schrijver wrote:
> > > On Wed, Jun 18, 2014 at 05:37:54PM +0200, Stephen Warren wrote:
> > >> On 06/18/2014 06:18 AM, Peter De Schrijver wrote:
> > >>> On Tue, Jun 17, 2014 at 11:51:20PM +0200, Thierry Reding wrote:
> > >>>> * PGP Signed by an unknown key
> > >>>>
> > >>>> On Tue, Jun 17, 2014 at 05:01:46PM +0300, Peter De Schrijver wrote:
> > >>>>> On Tue, Jun 17, 2014 at 02:13:15PM +0200, Thierry Reding wrote:
> > >>>>>>> Old Signed by an unknown key
> > >>>>>>
> > >>>>>> On Mon, Jun 16, 2014 at 04:01:02PM -0600, Stephen Warren wrote:
> > >>>>>>> On 06/04/2014 05:32 AM, Mikko Perttunen wrote:
> > >>>>>>>> This symbol needs to be exported to power on rails without using
> > >>>>>>>> tegra_powergate_sequence_power_up. tegra_powergate_sequence_power_up
> > >>>>>>>> cannot be used in situations where the driver wants to handle clocking
> > >>>>>>>> by itself.
> > >>>>>>>
> > >>>>>>> Thierry, are you OK with this change?
> > >>>>>>
> > >>>>>> I would've preferred tegra_powergate_sequence_power_up() to be used
> > >>>>>
> > >>>>> I don't think the current tegra_powergate_sequence_power_up() API is very well
> > >>>>> defined though. I don't think the clocks and resets required by the sequence
> > >>>>> should be provided by the driver. For one, there can be several clocks and
> > >>>>> resets that need to be controlled for a single domain.
> > >>>>
> > >>>> Do you have any suggestions for what the API should look like? Even if
> > >>>> we plan to move to some different API, I think there's some advantage in
> > >>>> using it consistently if for no other reason than to make it easier to
> > >>>> replace occurrences later on.
> > >>>>
> > >>>
> > >>> I think the API should only have the domain ID as input so:
> > >>>
> > >>> int tegra_powerdomain_on(int id) 
> > >>>
> > >>> /*
> > >>>  * Prerequisites: domain is off
> > >>>  * Result: domain is on, clocks of the modules in the domain are off, modules are in reset
> > >>>  */
> > >>>
> > >>> int tegra_powerdomain_off(int id)
> > >>>
> > >>> /*
> > >>>  * Prerequisites: all clocks of the modules in the domain are off
> > >>>  * result: domain is off
> > >>>  */
> > >>
> > >> That doesn't make sense; the PMC doesn't have access to the clock and
> > >> reset IDs - that's why the API requires them to be passed in.
> > >>
> > > 
> > > We should make driver look them up by name then. It doesn't make sense to
> > > move this knowledge to the drivers as there can be several modules in 1
> > > powerdomain. So every driver would then need to have access to all clock
> > > and reset IDs of the modules of the domain?
> > 
> > Having the drivers know the clocks, resets, and power domains that
> > affect their HW module seems perfectly reasonable.
> > 
> 
> Yes, but the problem is that you also need clocks and reset of other modules
> in the same domain to safely control the domain's status. Eg: the ISPs, VI and
> CSI share a domain. VI and CSI are useable without ISP and the ISP lacks
> public documentation. So it's not unlikely a VI and CSI driver will upstreamed
> someday which means we would need to control the domain and therefore would
> need to tell that driver about the ISPs clocks and resets even though the
> driver doesn't know anything about the ISP hw otherwise.

Can't we make powergates reference counted so that they don't get
disabled as long as there are any users? Looking for example at the
display controller driver, modules don't seem to care overly much about
the powergate's state except that it needs to be turned on before they
touch some of the registers.

>From a bit of experimentation it also seems like the sequence encoded
within tegra_powergate_sequence_power_up() isn't at all necessary. I
couldn't find an authoritative reference for that either, so I'm tempted
to conclude that it was simply cargo-culted from the dark-ages.

So I'm thinking that if we ever move to use power domains for this, we
may be able to just drop any extra handling (well, we'd need to keep it
for backwards-compatibility... *sigh*) and let drivers handle the clock
and reset resources.

On the other hand, given that we already need to keep the existing code
for backwards-compatibility, I'm not sure there's a real advantage in
turning them into power domains, since we'd be adding extra code without
an clear gains (especially since it seems like we'd need even more code
to properly handle suspend/resume in drivers that need powergates).

> > Do we actually have any case where unrelated modules are in the same
> > power domain /and/ there's some need for those drivers to manipulate the
> > power domain?
> > 
> 
> According to the TRM, the reset state of the power domains is undefined. While
> that seems unlikely, I do think the kernel should not assume any domain is on
> apart from the obvious ones (like the CPU domain it is running on),

Hm... I thought I had seen some documents specifically giving the reset
states of the power partitions. Perhaps it wasn't in the TRM, though.
But I agree that drivers generally shouldn't be assuming anything about
the power partition states.

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

  reply	other threads:[~2014-07-08 13:05 UTC|newest]

Thread overview: 173+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-04 11:32 [PATCH 0/9] Serial ATA support for NVIDIA Tegra124 Mikko Perttunen
2014-06-04 11:32 ` Mikko Perttunen
2014-06-04 11:32 ` Mikko Perttunen
2014-06-04 11:32 ` [PATCH 1/9] of: Add NVIDIA Tegra SATA controller binding Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
2014-06-16 21:55   ` Stephen Warren
2014-06-16 21:55     ` Stephen Warren
2014-06-04 11:32 ` [PATCH 2/9] ARM: tegra: Add SATA controller to Tegra124 device tree Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
2014-06-04 11:32 ` [PATCH 3/9] ARM: tegra: Add SATA and SATA power to Jetson TK1 " Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
     [not found]   ` <1401881559-18469-4-git-send-email-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-06-16 21:58     ` Stephen Warren
2014-06-16 21:58       ` Stephen Warren
2014-06-16 21:58       ` Stephen Warren
2014-06-04 11:32 ` [PATCH 4/9] clk: tegra: Enable hardware control of SATA PLL Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
2014-06-16 21:49   ` Stephen Warren
2014-06-16 21:49     ` Stephen Warren
2014-06-17  9:59     ` Peter De Schrijver
2014-06-17  9:59       ` Peter De Schrijver
2014-06-17  9:59       ` Peter De Schrijver
2014-06-04 11:32 ` [PATCH 5/9] clk: tegra: Add SATA clocks to Tegra124 initialization table Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
2014-06-04 11:32 ` [PATCH 6/9] ARM: tegra: Export tegra_powergate_power_on Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
     [not found]   ` <1401881559-18469-7-git-send-email-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-06-16 22:01     ` Stephen Warren
2014-06-16 22:01       ` Stephen Warren
2014-06-16 22:01       ` Stephen Warren
2014-06-17 12:13       ` Thierry Reding
2014-06-17 12:13         ` Thierry Reding
2014-06-17 12:28         ` Mikko Perttunen
2014-06-17 12:28           ` Mikko Perttunen
2014-06-17 12:28           ` Mikko Perttunen
2014-06-17 14:01         ` Peter De Schrijver
2014-06-17 14:01           ` Peter De Schrijver
2014-06-17 14:01           ` Peter De Schrijver
2014-06-17 21:51           ` Thierry Reding
2014-06-17 21:51             ` Thierry Reding
2014-06-17 21:51             ` Thierry Reding
2014-06-18 12:18             ` Peter De Schrijver
2014-06-18 12:18               ` Peter De Schrijver
2014-06-18 12:18               ` Peter De Schrijver
2014-06-18 15:37               ` Stephen Warren
2014-06-18 15:37                 ` Stephen Warren
2014-06-18 15:37                 ` Stephen Warren
2014-06-19  8:02                 ` Peter De Schrijver
2014-06-19  8:02                   ` Peter De Schrijver
2014-06-19  8:02                   ` Peter De Schrijver
2014-06-19  8:36                   ` Peter De Schrijver
2014-06-19  8:36                     ` Peter De Schrijver
2014-06-19  8:36                     ` Peter De Schrijver
2014-06-19 16:01                   ` Stephen Warren
2014-06-19 16:01                     ` Stephen Warren
2014-06-19 16:01                     ` Stephen Warren
2014-06-23 10:14                     ` Peter De Schrijver
2014-06-23 10:14                       ` Peter De Schrijver
2014-06-23 10:14                       ` Peter De Schrijver
2014-07-08 13:05                       ` Thierry Reding [this message]
2014-07-08 13:05                         ` Thierry Reding
2014-07-08 13:05                         ` Thierry Reding
2014-07-08 14:11                         ` Peter De Schrijver
2014-07-08 14:11                           ` Peter De Schrijver
2014-07-08 14:11                           ` Peter De Schrijver
2014-07-09  6:31                           ` Thierry Reding
2014-07-09  6:31                             ` Thierry Reding
2014-07-09  6:31                             ` Thierry Reding
2014-07-09  8:33                             ` Peter De Schrijver
2014-07-09  8:33                               ` Peter De Schrijver
2014-07-09  8:33                               ` Peter De Schrijver
     [not found]                               ` <20140709083311.GE23218-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2014-07-09 10:25                                 ` Thierry Reding
2014-07-09 10:25                                   ` Thierry Reding
2014-07-09 10:25                                   ` Thierry Reding
2014-07-09 10:31                                   ` Lucas Stach
2014-07-09 10:31                                     ` Lucas Stach
2014-07-09 10:31                                     ` Lucas Stach
2014-07-09 11:20                                     ` Peter De Schrijver
2014-07-09 11:20                                       ` Peter De Schrijver
2014-07-09 11:20                                       ` Peter De Schrijver
2014-07-09 11:08                                   ` Peter De Schrijver
2014-07-09 11:08                                     ` Peter De Schrijver
2014-07-09 11:08                                     ` Peter De Schrijver
     [not found]                                     ` <20140709110816.GF23218-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2014-07-09 12:04                                       ` Thierry Reding
2014-07-09 12:04                                         ` Thierry Reding
2014-07-09 12:04                                         ` Thierry Reding
2014-07-09 12:43                                         ` Peter De Schrijver
2014-07-09 12:43                                           ` Peter De Schrijver
2014-07-09 12:43                                           ` Peter De Schrijver
2014-07-09 12:56                                           ` Thierry Reding
2014-07-09 12:56                                             ` Thierry Reding
2014-07-09 12:56                                             ` Thierry Reding
2014-07-09 13:20                                             ` Peter De Schrijver
2014-07-09 13:20                                               ` Peter De Schrijver
2014-07-09 13:20                                               ` Peter De Schrijver
2014-07-09 14:42                                               ` Thierry Reding
2014-07-09 14:42                                                 ` Thierry Reding
2014-07-09 14:42                                                 ` Thierry Reding
2014-07-09 16:09                                                 ` Peter De Schrijver
2014-07-09 16:09                                                   ` Peter De Schrijver
2014-07-09 16:09                                                   ` Peter De Schrijver
2014-06-04 11:32 ` [PATCH 7/9] ahci: Increase AHCI_MAX_CLKS to 4 Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
     [not found]   ` <1401881559-18469-8-git-send-email-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-06-16 22:04     ` Stephen Warren
2014-06-16 22:04       ` Stephen Warren
2014-06-16 22:04       ` Stephen Warren
2014-06-04 11:32 ` [PATCH 8/9] ata: Add support for the Tegra124 SATA controller Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
     [not found]   ` <1401881559-18469-9-git-send-email-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-06-05 12:18     ` Rob Herring
2014-06-05 12:18       ` Rob Herring
2014-06-05 12:18       ` Rob Herring
2014-06-05 12:59       ` Mikko Perttunen
2014-06-05 12:59         ` Mikko Perttunen
2014-06-05 12:59         ` Mikko Perttunen
2014-06-16 22:14     ` Stephen Warren
2014-06-16 22:14       ` Stephen Warren
2014-06-16 22:14       ` Stephen Warren
2014-06-17 12:14     ` Bartlomiej Zolnierkiewicz
2014-06-17 12:14       ` Bartlomiej Zolnierkiewicz
2014-06-17 12:14       ` Bartlomiej Zolnierkiewicz
2014-06-17 16:10       ` Stephen Warren
2014-06-17 16:10         ` Stephen Warren
2014-06-17 16:10         ` Stephen Warren
2014-06-17 16:13         ` Tejun Heo
2014-06-17 16:13           ` Tejun Heo
     [not found]           ` <20140617161320.GG31819-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2014-06-17 16:14             ` Tejun Heo
2014-06-17 16:14               ` Tejun Heo
2014-06-17 16:14               ` Tejun Heo
2014-06-17 16:23               ` Stephen Warren
2014-06-17 16:23                 ` Stephen Warren
2014-06-17 16:23                 ` Stephen Warren
2014-06-17 16:32                 ` Tejun Heo
2014-06-17 16:32                   ` Tejun Heo
2014-06-17 17:04         ` Bartlomiej Zolnierkiewicz
2014-06-17 17:04           ` Bartlomiej Zolnierkiewicz
2014-06-17 17:36           ` Mikko Perttunen
2014-06-17 17:36             ` Mikko Perttunen
     [not found]             ` <53A07CA4.7080206-/1wQRMveznE@public.gmane.org>
2014-06-17 17:37               ` Stephen Warren
2014-06-17 17:37                 ` Stephen Warren
2014-06-17 17:37                 ` Stephen Warren
2014-06-04 11:32 ` [PATCH 9/9] ARM: tegra: Add options for Tegra AHCI support to tegra_defconfig Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
2014-06-04 11:32   ` Mikko Perttunen
     [not found] ` <1401881559-18469-1-git-send-email-mperttunen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-06-05 17:29   ` [PATCH 0/9] Serial ATA support for NVIDIA Tegra124 Stephen Warren
2014-06-05 17:29     ` Stephen Warren
2014-06-05 17:29     ` Stephen Warren
     [not found]     ` <5390A8F9.2090408-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-06-06  6:27       ` Mikko Perttunen
2014-06-06  6:27         ` Mikko Perttunen
2014-06-06  6:27         ` Mikko Perttunen
2014-06-06  7:11         ` Thierry Reding
2014-06-06  7:11           ` Thierry Reding
2014-06-06  7:11           ` Thierry Reding
2014-06-06  7:18           ` Mikko Perttunen
2014-06-06  7:18             ` Mikko Perttunen
2014-06-06  7:18             ` Mikko Perttunen
     [not found]         ` <53915F3B.6050806-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-06-09 18:33           ` Stephen Warren
2014-06-09 18:33             ` Stephen Warren
2014-06-09 18:33             ` Stephen Warren
     [not found]             ` <5395FE0E.80105-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-06-09 18:49               ` Mikko Perttunen
2014-06-09 18:49                 ` Mikko Perttunen
2014-06-09 18:49                 ` Mikko Perttunen
     [not found]                 ` <539601B4.1010707-/1wQRMveznE@public.gmane.org>
2014-07-08 13:08                   ` Thierry Reding
2014-07-08 13:08                     ` Thierry Reding
2014-07-08 13:08                     ` Thierry Reding
2014-07-08 13:34                     ` Mikko Perttunen
2014-07-08 13:34                       ` Mikko Perttunen
2014-07-08 13:34                       ` Mikko Perttunen

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=20140708130501.GC9516@ulmo \
    --to=thierry.reding@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=mperttunen@nvidia.com \
    --cc=pdeschrijver@nvidia.com \
    --cc=swarren@wwwdotorg.org \
    --cc=tj@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 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.