All of lore.kernel.org
 help / color / mirror / Atom feed
From: Santosh <santosh.shilimkar@ti.com>
To: Tony Lindgren <tony@atomide.com>
Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux@arm.linux.org.uk, khilman@ti.com, rnayak@ti.com, "Woodruff,
	Richard" <r-woodruff2@ti.com>
Subject: Re: [PATCH 13/25] OMAP4: PM: Add WakeupGen module as OMAP gic_arch_extn
Date: Wed, 14 Sep 2011 22:19:55 +0530	[thread overview]
Message-ID: <4E70DB33.5070501@ti.com> (raw)
In-Reply-To: <20110914152116.GM24252@atomide.com>

On Wednesday 14 September 2011 08:51 PM, Tony Lindgren wrote:
> * Shilimkar, Santosh<santosh.shilimkar@ti.com>  [110913 22:01]:
>> Tony,
>> On Wed, Sep 14, 2011 at 2:06 AM, Tony Lindgren<tony@atomide.com>  wrote:
>>> * Santosh Shilimkar<santosh.shilimkar@ti.com>  [110904 06:23]:
>>>> OMAP WakeupGen is the interrupt controller extension used along
>>>> with ARM GIC to wake the CPU out from low power states on
>>>> external interrupts.
>>>>
>>>> The WakeupGen unit is responsible for generating wakeup event
>>>> from the incoming interrupts and enable bits. It is implemented
>>>> in MPU always ON power domain. During normal operation,
>>>> WakeupGen delivers external interrupts directly to the GIC.
>>> ...
>>>
>>>> +     /*
>>>> +      * Override GIC architecture specific functions to add
>>>> +      * OMAP WakeupGen interrupt controller along with GIC
>>>> +      */
>>>> +     gic_arch_extn.irq_mask = wakeupgen_mask;
>>>> +     gic_arch_extn.irq_unmask = wakeupgen_unmask;
>>>> +     gic_arch_extn.irq_set_wake = wakeupgen_set_wake;
>>>> +     gic_arch_extn.flags = IRQCHIP_MASK_ON_SUSPEND;
>>>
>>> As I've commented before, there should not be any need to tweak
>>> the wakeupgen registers for each interrupt during the runtime.
>>>
>> And I gave you all the reasons why it needs to be done this way.
>
> Hmm, I don't think you ever answered the main question:
>
> Why would you need to write the wakeupgen registers for every
> interrupt during the runtime instead of arming them only when
> entering idle?
>
I thought I did that in last thread.
Let me try again,

First and foremost, I have to go with the approach here because MPUSS
hardware team put a requirement that GIC and wakeupgen should always be
kept in sync. If needed we can discuss this off-the list with Richard.

Below is the extract from the veyron func specs.
-------------------------------------
Version 1.6 of veyron spec has this.

 From page 95, paragraph 2 on version 1.6:

"It is SW responsibility to program interrupt enabling/disabling
coherently in the GIC and in the Wugen enable registers. That is, a
given interrupt for a given CPU is either enable at both GIC and Wugen,
or disable at both, but no mix."
-------------------------------------

The way understand this IP is, even in normal scenario's every IRQ
will come to wakeupgen and then it will pass that to GIC. CPU clock
domains are kept under HW supervised always and they can enter inactive
any time without WFI. Only wakeup gen can bring the CPU out of inactive
state.

That's requirement really lead to this design choice. Just to add
all ARM SOC's using GIC has a gic extension interrupt controller and
follow the same approach for the secondary IRQCHIPO.

Below points as such don't matter after the strict hardware
requirement. Still .....


Let's say, we ignore the hardware recommendation and try
to do what you are suggesting.

How will you know while entering in idle which IRQ's to be
masked and which are to be unmasked ?
The only way is to run though entire 1024 possible IRQ's from GIC
and then check the state of each IRQ and set things accordingly.
At GIC level, mask and unmask registers are different so you will
end up reading those many registers. That also means you need to
export some non-standard APIs from GIC driver.

In system wide suspend, the core irq code, communicates
the wakeup and non-wakeup functionality using standard mask/
unmask APIs when used with IRQCHIP_MASK_ON_SUSPEND.
With what you are suggesting it won't work
as desired. Because that information is only passed
to the IRQ chips. So you will still need IRQCHIP and
mask/unmask APIs. That can be done as part of set_wake()
handler as well though.

The wakeupgen is within CPU cluster and the accesses
to it are not as expensive as like accessing 32 K timer or
GP timer.

By making the wakeupgen as an IRQCHIP, we meet the hardware
requirement and also make use of this IP properly for the
desired functionality using standard IRQCHIP interfaces
No need of non-standard hacking.

It also avoid platform code monkeing with common GIC code
and irq subsystem to hack the stuff.

Btw, not exactly related here, but because of common code consolidation, 
we need to actually use GIC common
save/restore hooks, even though OMAP has very
optimal software save and hardware restore mechanism
for GIC.

Hope this email summarise all previous multiple discussions
in one place.

Regards
Santosh

WARNING: multiple messages have this Message-ID (diff)
From: santosh.shilimkar@ti.com (Santosh)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 13/25] OMAP4: PM: Add WakeupGen module as OMAP gic_arch_extn
Date: Wed, 14 Sep 2011 22:19:55 +0530	[thread overview]
Message-ID: <4E70DB33.5070501@ti.com> (raw)
In-Reply-To: <20110914152116.GM24252@atomide.com>

On Wednesday 14 September 2011 08:51 PM, Tony Lindgren wrote:
> * Shilimkar, Santosh<santosh.shilimkar@ti.com>  [110913 22:01]:
>> Tony,
>> On Wed, Sep 14, 2011 at 2:06 AM, Tony Lindgren<tony@atomide.com>  wrote:
>>> * Santosh Shilimkar<santosh.shilimkar@ti.com>  [110904 06:23]:
>>>> OMAP WakeupGen is the interrupt controller extension used along
>>>> with ARM GIC to wake the CPU out from low power states on
>>>> external interrupts.
>>>>
>>>> The WakeupGen unit is responsible for generating wakeup event
>>>> from the incoming interrupts and enable bits. It is implemented
>>>> in MPU always ON power domain. During normal operation,
>>>> WakeupGen delivers external interrupts directly to the GIC.
>>> ...
>>>
>>>> +     /*
>>>> +      * Override GIC architecture specific functions to add
>>>> +      * OMAP WakeupGen interrupt controller along with GIC
>>>> +      */
>>>> +     gic_arch_extn.irq_mask = wakeupgen_mask;
>>>> +     gic_arch_extn.irq_unmask = wakeupgen_unmask;
>>>> +     gic_arch_extn.irq_set_wake = wakeupgen_set_wake;
>>>> +     gic_arch_extn.flags = IRQCHIP_MASK_ON_SUSPEND;
>>>
>>> As I've commented before, there should not be any need to tweak
>>> the wakeupgen registers for each interrupt during the runtime.
>>>
>> And I gave you all the reasons why it needs to be done this way.
>
> Hmm, I don't think you ever answered the main question:
>
> Why would you need to write the wakeupgen registers for every
> interrupt during the runtime instead of arming them only when
> entering idle?
>
I thought I did that in last thread.
Let me try again,

First and foremost, I have to go with the approach here because MPUSS
hardware team put a requirement that GIC and wakeupgen should always be
kept in sync. If needed we can discuss this off-the list with Richard.

Below is the extract from the veyron func specs.
-------------------------------------
Version 1.6 of veyron spec has this.

 From page 95, paragraph 2 on version 1.6:

"It is SW responsibility to program interrupt enabling/disabling
coherently in the GIC and in the Wugen enable registers. That is, a
given interrupt for a given CPU is either enable at both GIC and Wugen,
or disable at both, but no mix."
-------------------------------------

The way understand this IP is, even in normal scenario's every IRQ
will come to wakeupgen and then it will pass that to GIC. CPU clock
domains are kept under HW supervised always and they can enter inactive
any time without WFI. Only wakeup gen can bring the CPU out of inactive
state.

That's requirement really lead to this design choice. Just to add
all ARM SOC's using GIC has a gic extension interrupt controller and
follow the same approach for the secondary IRQCHIPO.

Below points as such don't matter after the strict hardware
requirement. Still .....


Let's say, we ignore the hardware recommendation and try
to do what you are suggesting.

How will you know while entering in idle which IRQ's to be
masked and which are to be unmasked ?
The only way is to run though entire 1024 possible IRQ's from GIC
and then check the state of each IRQ and set things accordingly.
At GIC level, mask and unmask registers are different so you will
end up reading those many registers. That also means you need to
export some non-standard APIs from GIC driver.

In system wide suspend, the core irq code, communicates
the wakeup and non-wakeup functionality using standard mask/
unmask APIs when used with IRQCHIP_MASK_ON_SUSPEND.
With what you are suggesting it won't work
as desired. Because that information is only passed
to the IRQ chips. So you will still need IRQCHIP and
mask/unmask APIs. That can be done as part of set_wake()
handler as well though.

The wakeupgen is within CPU cluster and the accesses
to it are not as expensive as like accessing 32 K timer or
GP timer.

By making the wakeupgen as an IRQCHIP, we meet the hardware
requirement and also make use of this IP properly for the
desired functionality using standard IRQCHIP interfaces
No need of non-standard hacking.

It also avoid platform code monkeing with common GIC code
and irq subsystem to hack the stuff.

Btw, not exactly related here, but because of common code consolidation, 
we need to actually use GIC common
save/restore hooks, even though OMAP has very
optimal software save and hardware restore mechanism
for GIC.

Hope this email summarise all previous multiple discussions
in one place.

Regards
Santosh

  reply	other threads:[~2011-09-14 16:50 UTC|newest]

Thread overview: 238+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-04 13:54 [PATCH 00/25] OMAP4: PM: suspend, CPU-hotplug and CPUilde support Santosh Shilimkar
2011-09-04 13:54 ` Santosh Shilimkar
2011-09-04 13:54 ` [PATCH 01/25] ARM: mm: Add strongly ordered descriptor support Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-13 20:23   ` Tony Lindgren
2011-09-13 20:23     ` Tony Lindgren
2011-09-14  5:36     ` Shilimkar, Santosh
2011-09-14  5:36       ` Shilimkar, Santosh
2011-09-04 13:54 ` [PATCH 02/25] OMAP4: Redefine mandatory barriers for OMAP to include interconnect barriers Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-13 20:27   ` Tony Lindgren
2011-09-13 20:27     ` Tony Lindgren
2011-09-14  5:39     ` Shilimkar, Santosh
2011-09-14  5:39       ` Shilimkar, Santosh
2011-09-14 10:24     ` Santosh
2011-09-14 10:24       ` Santosh
2011-09-15 17:17       ` Kevin Hilman
2011-09-15 17:17         ` Kevin Hilman
2011-09-15 17:24         ` Shilimkar, Santosh
2011-09-15 17:24           ` Shilimkar, Santosh
2011-09-15 17:53           ` Tony Lindgren
2011-09-15 17:53             ` Tony Lindgren
2011-09-15 18:22             ` Shilimkar, Santosh
2011-09-15 18:22               ` Shilimkar, Santosh
2011-09-15 19:43               ` Tony Lindgren
2011-09-15 19:43                 ` Tony Lindgren
2011-09-15 20:00                 ` Shilimkar, Santosh
2011-09-15 20:00                   ` Shilimkar, Santosh
2011-09-16 12:01                   ` Shilimkar, Santosh
2011-09-16 12:01                     ` Shilimkar, Santosh
2011-09-04 13:54 ` [PATCH 03/25] OMAP4: PM: Use custom omap_do_wfi() for suspend and default idle Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-04 13:54 ` [PATCH 04/25] OMAP4: Remove un-used do_wfi() macro Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-04 13:54 ` [PATCH 05/25] OMAP4: Use WARN_ON() instead of BUG_ON() with graceful exit Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-05 10:11   ` Sergei Shtylyov
2011-09-05 10:11     ` Sergei Shtylyov
2011-09-05 10:42     ` Santosh
2011-09-05 10:42       ` Santosh
2011-09-05 10:47       ` Russell King - ARM Linux
2011-09-05 10:47         ` Russell King - ARM Linux
2011-09-05 10:51         ` Santosh
2011-09-05 10:51           ` Santosh
2011-09-08 18:51           ` Jean Pihet
2011-09-08 18:51             ` Jean Pihet
2011-09-04 13:54 ` [PATCH 06/25] OMAP4: Export omap4_get_base*() rather than global address pointers Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-04 13:54 ` [PATCH 07/25] OMAP4: PM: Add SAR RAM support Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-04 13:54 ` [PATCH 08/25] OMAP4: PM: Keep static dep between MPUSS-EMIF and MPUSS-L3 and DUCATI-L3 Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-08 18:06   ` Kevin Hilman
2011-09-08 18:06     ` Kevin Hilman
2011-09-09  4:21     ` Santosh
2011-09-09  4:21       ` Santosh
2011-09-04 13:54 ` [PATCH 09/25] OMAP4: PM: Avoid omap4_pm_init() on OMAP4430 ES1.0 Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-04 13:54 ` [PATCH 10/25] OMAP4: PM: Initialise all the clockdomains to supported states Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-04 13:54 ` [PATCH 11/25] OMAP: Add Secure HAL and monitor mode API infrastructure Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-08 18:58   ` Jean Pihet
2011-09-08 18:58     ` Jean Pihet
2011-09-09  4:22     ` Santosh
2011-09-09  4:22       ` Santosh
2011-09-04 13:54 ` [PATCH 12/25] OMAP: Add support to allocate the memory for secure RAM Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-08 19:19   ` Jean Pihet
2011-09-08 19:19     ` Jean Pihet
2011-09-09  9:43     ` Santosh
2011-09-09  9:43       ` Santosh
2011-09-09 12:54       ` Jean Pihet
2011-09-09 12:54         ` Jean Pihet
2011-09-09 14:09         ` Shilimkar, Santosh
2011-09-09 14:09           ` Shilimkar, Santosh
2011-09-04 13:54 ` [PATCH 13/25] OMAP4: PM: Add WakeupGen module as OMAP gic_arch_extn Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-08 18:27   ` Kevin Hilman
2011-09-08 18:27     ` Kevin Hilman
2011-09-09  4:29     ` Santosh
2011-09-09  4:29       ` Santosh
2011-09-09  7:19       ` Thomas Gleixner
2011-09-09  7:19         ` Thomas Gleixner
2011-09-09  8:07         ` Santosh
2011-09-09  8:07           ` Santosh
2011-09-09  8:18           ` Thomas Gleixner
2011-09-09  8:18             ` Thomas Gleixner
2011-09-09  9:05             ` Santosh
2011-09-09  9:05               ` Santosh
2011-09-12  7:56               ` Thomas Gleixner
2011-09-12  7:56                 ` Thomas Gleixner
2011-09-12  8:44                 ` Santosh
2011-09-12  8:44                   ` Santosh
2011-09-08 19:16   ` Jean Pihet
2011-09-08 19:16     ` Jean Pihet
2011-09-09  4:23     ` Santosh
2011-09-09  4:23       ` Santosh
2011-09-13 20:36   ` Tony Lindgren
2011-09-13 20:36     ` Tony Lindgren
2011-09-14  5:34     ` Shilimkar, Santosh
2011-09-14  5:34       ` Shilimkar, Santosh
2011-09-14 15:21       ` Tony Lindgren
2011-09-14 15:21         ` Tony Lindgren
2011-09-14 16:49         ` Santosh [this message]
2011-09-14 16:49           ` Santosh
2011-09-14 17:08           ` Tony Lindgren
2011-09-14 17:08             ` Tony Lindgren
2011-09-14 17:13             ` Santosh
2011-09-14 17:13               ` Santosh
2011-09-14 17:18               ` Tony Lindgren
2011-09-14 17:18                 ` Tony Lindgren
2011-09-14 17:21                 ` Santosh
2011-09-14 17:21                   ` Santosh
2011-09-14 17:22                 ` Santosh
2011-09-14 17:22                   ` Santosh
2011-09-14 19:04                   ` Tony Lindgren
2011-09-14 19:04                     ` Tony Lindgren
2011-09-15  2:57                     ` Santosh
2011-09-15  2:57                       ` Santosh
2011-09-15  9:36                   ` Cousson, Benoit
2011-09-15  9:36                     ` Cousson, Benoit
2011-09-15 12:02                     ` Shilimkar, Santosh
2011-09-15 12:02                       ` Shilimkar, Santosh
2011-09-15 13:29                       ` Woodruff, Richard
2011-09-15 13:29                         ` Woodruff, Richard
2011-09-04 13:54 ` [PATCH 14/25] OMAP4: PM: Add CPUX OFF mode support Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-08 19:39   ` Jean Pihet
2011-09-08 19:39     ` Jean Pihet
2011-09-09  9:59     ` Santosh
2011-09-09  9:59       ` Santosh
2011-09-09  8:04   ` Shawn Guo
2011-09-09  8:04     ` Shawn Guo
2011-09-09  8:09     ` Santosh
2011-09-09  8:09       ` Santosh
2011-09-09 14:13       ` Shawn Guo
2011-09-09 14:13         ` Shawn Guo
2011-09-09 14:11         ` Shilimkar, Santosh
2011-09-09 14:11           ` Shilimkar, Santosh
2011-09-09 15:27           ` Shawn Guo
2011-09-09 15:27             ` Shawn Guo
2011-09-09 16:59             ` Santosh
2011-09-09 16:59               ` Santosh
2011-09-09 18:34               ` Kevin Hilman
2011-09-09 18:34                 ` Kevin Hilman
2011-09-10  3:39                 ` Shilimkar, Santosh
2011-09-10  3:39                   ` Shilimkar, Santosh
2011-09-09 23:34               ` Shawn Guo
2011-09-09 23:34                 ` Shawn Guo
2011-09-10  3:38                 ` Shilimkar, Santosh
2011-09-10  3:38                   ` Shilimkar, Santosh
2011-09-10  4:54                   ` Shawn Guo
2011-09-10  4:54                     ` Shawn Guo
2011-09-10  5:51                     ` Santosh
2011-09-10  5:51                       ` Santosh
2011-09-12 21:06   ` Kevin Hilman
2011-09-12 21:06     ` Kevin Hilman
2011-09-13  5:39     ` Santosh
2011-09-13  5:39       ` Santosh
2011-09-13 17:33       ` Kevin Hilman
2011-09-13 17:33         ` Kevin Hilman
2011-09-14  5:26         ` Shilimkar, Santosh
2011-09-14  5:26           ` Shilimkar, Santosh
2011-09-04 13:54 ` [PATCH 15/25] OMAP4: Remove __INIT from omap_secondary_startup() to re-use it for hotplug Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-04 13:54 ` [PATCH 16/25] OMAP4: PM: Program CPU1 to hit OFF when off-lined Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-12 21:12   ` Kevin Hilman
2011-09-12 21:12     ` Kevin Hilman
2011-09-13  5:35     ` Santosh
2011-09-13  5:35       ` Santosh
2011-09-04 13:54 ` [PATCH 17/25] OMAP4: PM: CPU1 wakeup workaround from Low power modes Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-04 13:54 ` [PATCH 18/25] OMAP4: suspend: Add MPUSS power domain RETENTION support Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-15  0:27   ` Kevin Hilman
2011-09-15  0:27     ` Kevin Hilman
2011-09-15  3:19     ` Santosh
2011-09-15  3:19       ` Santosh
2011-09-04 13:54 ` [PATCH 19/25] OMAP4: PM: Add WakeupGen and secure GIC low power support Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-04 13:54 ` [PATCH 20/25] OMAP4: PM: Add L2X0 cache lowpower support Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-05 14:01   ` Lorenzo Pieralisi
2011-09-05 14:01     ` Lorenzo Pieralisi
2011-09-05 14:13     ` Santosh
2011-09-05 14:13       ` Santosh
2011-09-16 17:23   ` Kevin Hilman
2011-09-16 17:23     ` Kevin Hilman
2011-09-18  8:46     ` Santosh
2011-09-18  8:46       ` Santosh
2011-09-04 13:54 ` [PATCH 21/25] OMAP4: PM: Add MPUSS power domain OSWR support Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-12 18:52   ` Kevin Hilman
2011-09-12 18:52     ` Kevin Hilman
2011-09-13  5:37     ` Santosh
2011-09-13  5:37       ` Santosh
2011-09-13  7:39       ` Jean Pihet
2011-09-13  7:39         ` Jean Pihet
2011-09-13  8:25         ` Santosh
2011-09-13  8:25           ` Santosh
2011-09-04 13:54 ` [PATCH 22/25] OMAP4: PM: Add power domain statistics support Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-05 10:08   ` Sergei Shtylyov
2011-09-05 10:08     ` Sergei Shtylyov
2011-09-05 10:43     ` Santosh
2011-09-05 10:43       ` Santosh
2011-09-04 13:54 ` [PATCH 23/25] OMAP4: PM: Add CPUidle support Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-16 17:45   ` Kevin Hilman
2011-09-16 17:45     ` Kevin Hilman
2011-09-18  8:47     ` Santosh
2011-09-18  8:47       ` Santosh
2011-09-04 13:54 ` [PATCH 24/25] OMAP4: cpuidle: Switch to gptimer from twd in deeper C-states Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-16 17:51   ` Kevin Hilman
2011-09-16 17:51     ` Kevin Hilman
2011-09-18  8:48     ` Santosh
2011-09-18  8:48       ` Santosh
2011-09-04 13:54 ` [PATCH 25/25] OMAP3: CPUidle: Make use of CPU PM notifiers Santosh Shilimkar
2011-09-04 13:54   ` Santosh Shilimkar
2011-09-08 17:57   ` Kevin Hilman
2011-09-08 17:57     ` Kevin Hilman
2011-09-09  4:20     ` Santosh
2011-09-09  4:20       ` Santosh
2011-09-09  7:17     ` Santosh
2011-09-09  7:17       ` Santosh
2011-09-08 20:15 ` [PATCH 00/25] OMAP4: PM: suspend, CPU-hotplug and CPUilde support Jean Pihet
2011-09-08 20:15   ` Jean Pihet
2011-09-09  4:25   ` Santosh
2011-09-09  4:25     ` Santosh
2011-09-20 11:24 ` Vishwanath Sripathy
2011-09-20 11:24   ` Vishwanath Sripathy
2011-09-20 11:37   ` Santosh
2011-09-20 11:37     ` Santosh
2011-09-20 11:57 ` Santosh
2011-09-20 11:57   ` Santosh

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=4E70DB33.5070501@ti.com \
    --to=santosh.shilimkar@ti.com \
    --cc=khilman@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=r-woodruff2@ti.com \
    --cc=rnayak@ti.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.