Linux-OMAP Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 0/3] Block idle in gpio-omap with cpu_pm
@ 2020-03-04 22:54 Tony Lindgren
  2020-03-04 22:54 ` [PATCH 1/3] ARM: OMAP2+: Handle errors for cpu_pm Tony Lindgren
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Tony Lindgren @ 2020-03-04 22:54 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski
  Cc: linux-gpio, linux-omap, linux-arm-kernel, Aaro Koskinen,
	Dave Gerlach, Grygorii Strashko, Keerthy, Ladislav Michl,
	Peter Ujfalusi, Russell King, Tero Kristo

As discussed earlier, here's a series to use cpu_pm to block deeper SoC
idle states if a gpio interrupt is pending.

Regards,

Tony


Tony Lindgren (3):
  ARM: OMAP2+: Handle errors for cpu_pm
  gpio: omap: Block idle on pending gpio interrupts
  Revert "gpio: omap: Fix lost edge wake-up interrupts"

 arch/arm/mach-omap2/cpuidle34xx.c |  9 +++++++--
 arch/arm/mach-omap2/cpuidle44xx.c | 26 +++++++++++++++++---------
 arch/arm/mach-omap2/pm34xx.c      |  8 ++++++--
 drivers/gpio/gpio-omap.c          | 29 ++++++++++++++---------------
 4 files changed, 44 insertions(+), 28 deletions(-)

-- 
2.25.1

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/3] ARM: OMAP2+: Handle errors for cpu_pm
  2020-03-04 22:54 [PATCH 0/3] Block idle in gpio-omap with cpu_pm Tony Lindgren
@ 2020-03-04 22:54 ` Tony Lindgren
  2020-03-04 22:56   ` Tony Lindgren
  2020-03-04 22:54 ` [PATCH 2/3] gpio: omap: Block idle on pending gpio interrupts Tony Lindgren
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Tony Lindgren @ 2020-03-04 22:54 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski
  Cc: linux-gpio, linux-omap, linux-arm-kernel, Dave Gerlach,
	Grygorii Strashko, Keerthy, Ladislav Michl, Russell King,
	Tero Kristo, Aaro Koskinen, Peter Ujfalusi

We need to check for errors when calling cpu_pm_enter() and
cpu_cluster_pm_enter(). And we need to bail out on errors as
otherwise we can enter a deeper idle state when not desired.

I'm not aware of the lack of error handling causing issues yet,
but we need this at least for blocking deeper idle states when
a GPIO instance has pending interrupts.

Cc: Dave Gerlach <d-gerlach@ti.com>
Cc: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: Keerthy <j-keerthy@ti.com>
Cc: Ladislav Michl <ladis@linux-mips.org>
Cc: Russell King <rmk+kernel@armlinux.org.uk>
Cc: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap2/cpuidle34xx.c |  9 +++++++--
 arch/arm/mach-omap2/cpuidle44xx.c | 26 +++++++++++++++++---------
 arch/arm/mach-omap2/pm34xx.c      |  8 ++++++--
 3 files changed, 30 insertions(+), 13 deletions(-)

diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c
--- a/arch/arm/mach-omap2/cpuidle34xx.c
+++ b/arch/arm/mach-omap2/cpuidle34xx.c
@@ -109,6 +109,7 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
 			    int index)
 {
 	struct omap3_idle_statedata *cx = &omap3_idle_data[index];
+	int error;
 
 	if (omap_irq_pending() || need_resched())
 		goto return_sleep_time;
@@ -125,8 +126,11 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
 	 * Call idle CPU PM enter notifier chain so that
 	 * VFP context is saved.
 	 */
-	if (cx->mpu_state == PWRDM_POWER_OFF)
-		cpu_pm_enter();
+	if (cx->mpu_state == PWRDM_POWER_OFF) {
+		error = cpu_pm_enter();
+		if (error)
+			goto out_clkdm_set;
+	}
 
 	/* Execute ARM wfi */
 	omap_sram_idle();
@@ -139,6 +143,7 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
 	    pwrdm_read_prev_pwrst(mpu_pd) == PWRDM_POWER_OFF)
 		cpu_pm_exit();
 
+out_clkdm_set:
 	/* Re-allow idle for C1 */
 	if (cx->flags & OMAP_CPUIDLE_CX_NO_CLKDM_IDLE)
 		clkdm_allow_idle(mpu_pd->pwrdm_clkdms[0]);
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c
--- a/arch/arm/mach-omap2/cpuidle44xx.c
+++ b/arch/arm/mach-omap2/cpuidle44xx.c
@@ -122,6 +122,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 {
 	struct idle_statedata *cx = state_ptr + index;
 	u32 mpuss_can_lose_context = 0;
+	int error;
 
 	/*
 	 * CPU0 has to wait and stay ON until CPU1 is OFF state.
@@ -159,7 +160,9 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 	 * Call idle CPU PM enter notifier chain so that
 	 * VFP and per CPU interrupt context is saved.
 	 */
-	cpu_pm_enter();
+	error = cpu_pm_enter();
+	if (error)
+		goto cpu_pm_out;
 
 	if (dev->cpu == 0) {
 		pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
@@ -169,13 +172,17 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 		 * Call idle CPU cluster PM enter notifier chain
 		 * to save GIC and wakeupgen context.
 		 */
-		if (mpuss_can_lose_context)
-			cpu_cluster_pm_enter();
+		if (mpuss_can_lose_context) {
+			error = cpu_cluster_pm_enter();
+			if (error)
+				goto cpu_cluster_pm_out;
+		}
 	}
 
 	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
 	cpu_done[dev->cpu] = true;
 
+cpu_cluster_pm_out:
 	/* Wakeup CPU1 only if it is not offlined */
 	if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) {
 
@@ -197,12 +204,6 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 		}
 	}
 
-	/*
-	 * Call idle CPU PM exit notifier chain to restore
-	 * VFP and per CPU IRQ context.
-	 */
-	cpu_pm_exit();
-
 	/*
 	 * Call idle CPU cluster PM exit notifier chain
 	 * to restore GIC and wakeupgen context.
@@ -210,6 +211,13 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 	if (dev->cpu == 0 && mpuss_can_lose_context)
 		cpu_cluster_pm_exit();
 
+	/*
+	 * Call idle CPU PM exit notifier chain to restore
+	 * VFP and per CPU IRQ context.
+	 */
+	cpu_pm_exit();
+
+cpu_pm_out:
 	tick_broadcast_exit();
 
 fail:
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -191,6 +191,7 @@ void omap_sram_idle(void)
 	int per_next_state = PWRDM_POWER_ON;
 	int core_next_state = PWRDM_POWER_ON;
 	u32 sdrc_pwr = 0;
+	int error;
 
 	mpu_next_state = pwrdm_read_next_pwrst(mpu_pwrdm);
 	switch (mpu_next_state) {
@@ -219,8 +220,11 @@ void omap_sram_idle(void)
 	pwrdm_pre_transition(NULL);
 
 	/* PER */
-	if (per_next_state == PWRDM_POWER_OFF)
-		cpu_cluster_pm_enter();
+	if (per_next_state == PWRDM_POWER_OFF) {
+		error = cpu_cluster_pm_enter();
+		if (error)
+			return;
+	}
 
 	/* CORE */
 	if (core_next_state < PWRDM_POWER_ON) {
-- 
2.25.1

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 2/3] gpio: omap: Block idle on pending gpio interrupts
  2020-03-04 22:54 [PATCH 0/3] Block idle in gpio-omap with cpu_pm Tony Lindgren
  2020-03-04 22:54 ` [PATCH 1/3] ARM: OMAP2+: Handle errors for cpu_pm Tony Lindgren
@ 2020-03-04 22:54 ` Tony Lindgren
  2020-03-04 22:54 ` [PATCH 3/3] Revert "gpio: omap: Fix lost edge wake-up interrupts" Tony Lindgren
  2020-03-09  9:26 ` [PATCH 0/3] Block idle in gpio-omap with cpu_pm Linus Walleij
  3 siblings, 0 replies; 9+ messages in thread
From: Tony Lindgren @ 2020-03-04 22:54 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski
  Cc: linux-gpio, linux-omap, linux-arm-kernel, Dave Gerlach,
	Grygorii Strashko, Keerthy, Ladislav Michl, Russell King,
	Tero Kristo, Aaro Koskinen, Peter Ujfalusi

With the SoC cpuidle handling fixed for cpu_pm, we can now start to
return NOTIFY_BAD if there there are pending gpio interrupts.

This way the deeper SoC idle states can get blocked, and gpio latency
is improved in some cases. Note that this will not help with the
latency if the SoC has already entered a deeper idle state.

Note that this patch depends on cpu_pm properly handling the errors
returned by notifiers. For omap variants, this is fixed with patch
"ARM: OMAP2+: Handle errors for cpu_pm".

Cc: Dave Gerlach <d-gerlach@ti.com>
Cc: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: Keerthy <j-keerthy@ti.com>
Cc: Ladislav Michl <ladis@linux-mips.org>
Cc: Russell King <rmk+kernel@armlinux.org.uk>
Cc: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 drivers/gpio/gpio-omap.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -1237,26 +1237,35 @@ static int gpio_omap_cpu_notifier(struct notifier_block *nb,
 {
 	struct gpio_bank *bank;
 	unsigned long flags;
+	int ret = NOTIFY_OK;
+	u32 isr, mask;
 
 	bank = container_of(nb, struct gpio_bank, nb);
 
 	raw_spin_lock_irqsave(&bank->lock, flags);
+	if (bank->is_suspended)
+		goto out_unlock;
+
 	switch (cmd) {
 	case CPU_CLUSTER_PM_ENTER:
-		if (bank->is_suspended)
+		mask = omap_get_gpio_irqbank_mask(bank);
+		isr = readl_relaxed(bank->base + bank->regs->irqstatus) & mask;
+		if (isr) {
+			ret = NOTIFY_BAD;
 			break;
+		}
 		omap_gpio_idle(bank, true);
 		break;
 	case CPU_CLUSTER_PM_ENTER_FAILED:
 	case CPU_CLUSTER_PM_EXIT:
-		if (bank->is_suspended)
-			break;
 		omap_gpio_unidle(bank);
 		break;
 	}
+
+out_unlock:
 	raw_spin_unlock_irqrestore(&bank->lock, flags);
 
-	return NOTIFY_OK;
+	return ret;
 }
 
 static const struct omap_gpio_reg_offs omap2_gpio_regs = {
-- 
2.25.1

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 3/3] Revert "gpio: omap: Fix lost edge wake-up interrupts"
  2020-03-04 22:54 [PATCH 0/3] Block idle in gpio-omap with cpu_pm Tony Lindgren
  2020-03-04 22:54 ` [PATCH 1/3] ARM: OMAP2+: Handle errors for cpu_pm Tony Lindgren
  2020-03-04 22:54 ` [PATCH 2/3] gpio: omap: Block idle on pending gpio interrupts Tony Lindgren
@ 2020-03-04 22:54 ` Tony Lindgren
  2020-03-09  9:26 ` [PATCH 0/3] Block idle in gpio-omap with cpu_pm Linus Walleij
  3 siblings, 0 replies; 9+ messages in thread
From: Tony Lindgren @ 2020-03-04 22:54 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski
  Cc: linux-gpio, linux-omap, linux-arm-kernel, Aaro Koskinen,
	Grygorii Strashko, Keerthy, Ladislav Michl, Peter Ujfalusi,
	Russell King, Tero Kristo, Dave Gerlach

This reverts commit a522f1d0c381c42f3ace13b8bbeeccabdd6d2e5c.

With cpu_pm handling fixed for omaps, and with gpio-omap now returning
notify error on pending interrupts, we can drop the old workaround for
seeing if there may be pending edge interrupts.

Depends-on: ARM: OMAP2+: Handle errors for cpu_pm
Depends-on: gpio: omap: Block idle on pending gpio interrupts
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
Cc: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: Keerthy <j-keerthy@ti.com>
Cc: Ladislav Michl <ladis@linux-mips.org>
Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
Cc: Russell King <rmk+kernel@armlinux.org.uk>
Cc: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/gpio/gpio-omap.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -1102,23 +1102,13 @@ static void omap_gpio_idle(struct gpio_bank *bank, bool may_lose_context)
 {
 	struct device *dev = bank->chip.parent;
 	void __iomem *base = bank->base;
-	u32 mask, nowake;
+	u32 nowake;
 
 	bank->saved_datain = readl_relaxed(base + bank->regs->datain);
 
 	if (!bank->enabled_non_wakeup_gpios)
 		goto update_gpio_context_count;
 
-	/* Check for pending EDGE_FALLING, ignore EDGE_BOTH */
-	mask = bank->enabled_non_wakeup_gpios & bank->context.fallingdetect;
-	mask &= ~bank->context.risingdetect;
-	bank->saved_datain |= mask;
-
-	/* Check for pending EDGE_RISING, ignore EDGE_BOTH */
-	mask = bank->enabled_non_wakeup_gpios & bank->context.risingdetect;
-	mask &= ~bank->context.fallingdetect;
-	bank->saved_datain &= ~mask;
-
 	if (!may_lose_context)
 		goto update_gpio_context_count;
 
-- 
2.25.1

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/3] ARM: OMAP2+: Handle errors for cpu_pm
  2020-03-04 22:54 ` [PATCH 1/3] ARM: OMAP2+: Handle errors for cpu_pm Tony Lindgren
@ 2020-03-04 22:56   ` Tony Lindgren
  0 siblings, 0 replies; 9+ messages in thread
From: Tony Lindgren @ 2020-03-04 22:56 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski
  Cc: linux-gpio, linux-omap, linux-arm-kernel, Dave Gerlach,
	Grygorii Strashko, Keerthy, Ladislav Michl, Russell King,
	Tero Kristo, Aaro Koskinen, Peter Ujfalusi

* Tony Lindgren <tony@atomide.com> [200304 22:55]:
> We need to check for errors when calling cpu_pm_enter() and
> cpu_cluster_pm_enter(). And we need to bail out on errors as
> otherwise we can enter a deeper idle state when not desired.
> 
> I'm not aware of the lack of error handling causing issues yet,
> but we need this at least for blocking deeper idle states when
> a GPIO instance has pending interrupts.

Also, If these changes look OK, it's probably best to apply all
three into some immutable gpio branch against v5.6-rc1 that
I can merge in too if needed.

Regards,

Tony

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/3] Block idle in gpio-omap with cpu_pm
  2020-03-04 22:54 [PATCH 0/3] Block idle in gpio-omap with cpu_pm Tony Lindgren
                   ` (2 preceding siblings ...)
  2020-03-04 22:54 ` [PATCH 3/3] Revert "gpio: omap: Fix lost edge wake-up interrupts" Tony Lindgren
@ 2020-03-09  9:26 ` Linus Walleij
  2020-03-09 18:01   ` Tony Lindgren
  2020-03-17 17:34   ` Tony Lindgren
  3 siblings, 2 replies; 9+ messages in thread
From: Linus Walleij @ 2020-03-09  9:26 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Bartosz Golaszewski, open list:GPIO SUBSYSTEM, Linux-OMAP,
	Linux ARM, Aaro Koskinen, Dave Gerlach, Grygorii Strashko,
	Keerthy, Ladislav Michl, Peter Ujfalusi, Russell King,
	Tero Kristo

On Wed, Mar 4, 2020 at 11:54 PM Tony Lindgren <tony@atomide.com> wrote:

> As discussed earlier, here's a series to use cpu_pm to block deeper SoC
> idle states if a gpio interrupt is pending.

As you requested I queued these on an immutable branch
based on v5.6-rc1:
https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git/log/?h=ib-omap-block-idle

And merged into gpio-devel for v5.7.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/3] Block idle in gpio-omap with cpu_pm
  2020-03-09  9:26 ` [PATCH 0/3] Block idle in gpio-omap with cpu_pm Linus Walleij
@ 2020-03-09 18:01   ` Tony Lindgren
  2020-03-17 17:34   ` Tony Lindgren
  1 sibling, 0 replies; 9+ messages in thread
From: Tony Lindgren @ 2020-03-09 18:01 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Bartosz Golaszewski, open list:GPIO SUBSYSTEM, Linux-OMAP,
	Linux ARM, Aaro Koskinen, Dave Gerlach, Grygorii Strashko,
	Keerthy, Ladislav Michl, Peter Ujfalusi, Russell King,
	Tero Kristo

* Linus Walleij <linus.walleij@linaro.org> [200309 09:27]:
> On Wed, Mar 4, 2020 at 11:54 PM Tony Lindgren <tony@atomide.com> wrote:
> 
> > As discussed earlier, here's a series to use cpu_pm to block deeper SoC
> > idle states if a gpio interrupt is pending.
> 
> As you requested I queued these on an immutable branch
> based on v5.6-rc1:
> https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git/log/?h=ib-omap-block-idle
> 
> And merged into gpio-devel for v5.7.

OK thanks!

Tony

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/3] Block idle in gpio-omap with cpu_pm
  2020-03-09  9:26 ` [PATCH 0/3] Block idle in gpio-omap with cpu_pm Linus Walleij
  2020-03-09 18:01   ` Tony Lindgren
@ 2020-03-17 17:34   ` Tony Lindgren
  2020-03-27 10:10     ` Linus Walleij
  1 sibling, 1 reply; 9+ messages in thread
From: Tony Lindgren @ 2020-03-17 17:34 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Bartosz Golaszewski, open list:GPIO SUBSYSTEM, Linux-OMAP,
	Linux ARM, Aaro Koskinen, Dave Gerlach, Grygorii Strashko,
	Keerthy, Ladislav Michl, Peter Ujfalusi, Russell King,
	Tero Kristo

Hi Linus,

* Linus Walleij <linus.walleij@linaro.org> [200309 09:27]:
> On Wed, Mar 4, 2020 at 11:54 PM Tony Lindgren <tony@atomide.com> wrote:
> 
> > As discussed earlier, here's a series to use cpu_pm to block deeper SoC
> > idle states if a gpio interrupt is pending.
> 
> As you requested I queued these on an immutable branch
> based on v5.6-rc1:
> https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git/log/?h=ib-omap-block-idle
> 
> And merged into gpio-devel for v5.7.

Hmm I'm not seeing these in Linux next yet though, care to check?

Regards,

Tony

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/3] Block idle in gpio-omap with cpu_pm
  2020-03-17 17:34   ` Tony Lindgren
@ 2020-03-27 10:10     ` Linus Walleij
  0 siblings, 0 replies; 9+ messages in thread
From: Linus Walleij @ 2020-03-27 10:10 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Bartosz Golaszewski, open list:GPIO SUBSYSTEM, Linux-OMAP,
	Linux ARM, Aaro Koskinen, Dave Gerlach, Grygorii Strashko,
	Keerthy, Ladislav Michl, Peter Ujfalusi, Russell King,
	Tero Kristo

On Tue, Mar 17, 2020 at 6:34 PM Tony Lindgren <tony@atomide.com> wrote:
> * Linus Walleij <linus.walleij@linaro.org> [200309 09:27]:
> > On Wed, Mar 4, 2020 at 11:54 PM Tony Lindgren <tony@atomide.com> wrote:
> >
> > > As discussed earlier, here's a series to use cpu_pm to block deeper SoC
> > > idle states if a gpio interrupt is pending.
> >
> > As you requested I queued these on an immutable branch
> > based on v5.6-rc1:
> > https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git/log/?h=ib-omap-block-idle
> >
> > And merged into gpio-devel for v5.7.
>
> Hmm I'm not seeing these in Linux next yet though, care to check?

I was just slow on getting it build tested and pushed out, sorry.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, back to index

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-04 22:54 [PATCH 0/3] Block idle in gpio-omap with cpu_pm Tony Lindgren
2020-03-04 22:54 ` [PATCH 1/3] ARM: OMAP2+: Handle errors for cpu_pm Tony Lindgren
2020-03-04 22:56   ` Tony Lindgren
2020-03-04 22:54 ` [PATCH 2/3] gpio: omap: Block idle on pending gpio interrupts Tony Lindgren
2020-03-04 22:54 ` [PATCH 3/3] Revert "gpio: omap: Fix lost edge wake-up interrupts" Tony Lindgren
2020-03-09  9:26 ` [PATCH 0/3] Block idle in gpio-omap with cpu_pm Linus Walleij
2020-03-09 18:01   ` Tony Lindgren
2020-03-17 17:34   ` Tony Lindgren
2020-03-27 10:10     ` Linus Walleij

Linux-OMAP Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-omap/0 linux-omap/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-omap linux-omap/ https://lore.kernel.org/linux-omap \
		linux-omap@vger.kernel.org
	public-inbox-index linux-omap

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-omap


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git