* [PATCH v2 1/2] omap: pm34xx: Enable IO / IO-CHAIN wakeups for PER
@ 2010-05-03 23:04 Mike Chan
2010-05-03 23:04 ` [PATCH v2 2/2] omap: pm34xx: Remove PER wakeup dependency on CORE Mike Chan
2010-05-03 23:35 ` [PATCH v2 1/2] omap: pm34xx: Enable IO / IO-CHAIN wakeups for PER Kevin Hilman
0 siblings, 2 replies; 5+ messages in thread
From: Mike Chan @ 2010-05-03 23:04 UTC (permalink / raw)
Cc: khilman, linux-omap, r-woodruff2, tony, Mike Chan
IO events can also come from GPIO modules, which reside in the PER domain.
It is possible for the PER to enter RET while CORE is still in ON.
If GPIO 2-6 are enabled for IO-pad wakeups, the PER domain will not
wakeup in this case, unless we enable it.
Signed-off-by: Mike Chan <mike@android.com>
---
arch/arm/mach-omap2/pm34xx.c | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index ea0000b..fd76b0d 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -371,9 +371,16 @@ void omap_sram_idle(void)
if (pwrdm_read_pwrst(neon_pwrdm) == PWRDM_POWER_ON)
pwrdm_set_next_pwrst(neon_pwrdm, mpu_next_state);
- /* PER */
+ /* Enable IO-PAD and IO-CHAIN wakeups */
per_next_state = pwrdm_read_next_pwrst(per_pwrdm);
core_next_state = pwrdm_read_next_pwrst(core_pwrdm);
+ if (per_next_state < PWRDM_POWER_ON ||
+ core_next_state < PWRDM_POWER_ON) {
+ prm_set_mod_reg_bits(OMAP3430_EN_IO, WKUP_MOD, PM_WKEN);
+ omap3_enable_io_chain();
+ }
+
+ /* PER */
if (per_next_state < PWRDM_POWER_ON) {
omap_uart_prepare_idle(2);
omap2_gpio_prepare_for_retention();
@@ -398,10 +405,8 @@ void omap_sram_idle(void)
omap3_core_save_context();
omap3_prcm_save_context();
}
- /* Enable IO-PAD and IO-CHAIN wakeups */
- prm_set_mod_reg_bits(OMAP3430_EN_IO, WKUP_MOD, PM_WKEN);
- omap3_enable_io_chain();
}
+
omap3_intc_prepare_idle();
/*
@@ -463,7 +468,8 @@ void omap_sram_idle(void)
}
/* Disable IO-PAD and IO-CHAIN wakeup */
- if (core_next_state < PWRDM_POWER_ON) {
+ if (per_next_state < PWRDM_POWER_ON ||
+ core_next_state < PWRDM_POWER_ON) {
prm_clear_mod_reg_bits(OMAP3430_EN_IO, WKUP_MOD, PM_WKEN);
omap3_disable_io_chain();
}
--
1.7.0.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] omap: pm34xx: Remove PER wakeup dependency on CORE.
2010-05-03 23:04 [PATCH v2 1/2] omap: pm34xx: Enable IO / IO-CHAIN wakeups for PER Mike Chan
@ 2010-05-03 23:04 ` Mike Chan
2010-05-03 23:35 ` [PATCH v2 1/2] omap: pm34xx: Enable IO / IO-CHAIN wakeups for PER Kevin Hilman
1 sibling, 0 replies; 5+ messages in thread
From: Mike Chan @ 2010-05-03 23:04 UTC (permalink / raw)
Cc: khilman, linux-omap, r-woodruff2, tony, Mike Chan
We can remove this wakeup dependency since now, when
GPIO2-6 are enabled for IO-pad wakeup, PER domain is gauranteed
to be awake or be woken up to service.
The previous dependency did not handle all corner cases. Since there
was no sleep dependency between CORE and PER domains, if PER enters
RET and CORE is ON, PER will not be active for GPIO handling.
Signed-off-by: Mike Chan <mike@android.com>
---
arch/arm/mach-omap2/pm34xx.c | 8 --------
1 files changed, 0 insertions(+), 8 deletions(-)
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index fd76b0d..88eafb0 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -1086,14 +1086,6 @@ static int __init omap3_pm_init(void)
omap3_idle_init();
clkdm_add_wkdep(neon_clkdm, mpu_clkdm);
- /*
- * REVISIT: This wkdep is only necessary when GPIO2-6 are enabled for
- * IO-pad wakeup. Otherwise it will unnecessarily waste power
- * waking up PER with every CORE wakeup - see
- * http://marc.info/?l=linux-omap&m=121852150710062&w=2
- */
- clkdm_add_wkdep(per_clkdm, core_clkdm);
-
if (omap_type() != OMAP2_DEVICE_TYPE_GP) {
omap3_secure_ram_storage =
kmalloc(0x803F, GFP_KERNEL);
--
1.7.0.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] omap: pm34xx: Enable IO / IO-CHAIN wakeups for PER
2010-05-03 23:04 [PATCH v2 1/2] omap: pm34xx: Enable IO / IO-CHAIN wakeups for PER Mike Chan
2010-05-03 23:04 ` [PATCH v2 2/2] omap: pm34xx: Remove PER wakeup dependency on CORE Mike Chan
@ 2010-05-03 23:35 ` Kevin Hilman
2010-05-03 23:48 ` Mike Chan
1 sibling, 1 reply; 5+ messages in thread
From: Kevin Hilman @ 2010-05-03 23:35 UTC (permalink / raw)
To: Mike Chan; +Cc: linux-omap, r-woodruff2, tony
Mike Chan <mike@android.com> writes:
> IO events can also come from GPIO modules, which reside in the PER domain.
> It is possible for the PER to enter RET while CORE is still in ON.
> If GPIO 2-6 are enabled for IO-pad wakeups, the PER domain will not
> wakeup in this case, unless we enable it.
>
> Signed-off-by: Mike Chan <mike@android.com>
Thanks, adding both patches to PM branch (pm-fixes branch) and will
queue for 2.6.35.
Kevin
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] omap: pm34xx: Enable IO / IO-CHAIN wakeups for PER
2010-05-03 23:35 ` [PATCH v2 1/2] omap: pm34xx: Enable IO / IO-CHAIN wakeups for PER Kevin Hilman
@ 2010-05-03 23:48 ` Mike Chan
2010-05-04 19:06 ` Kevin Hilman
0 siblings, 1 reply; 5+ messages in thread
From: Mike Chan @ 2010-05-03 23:48 UTC (permalink / raw)
To: Kevin Hilman; +Cc: linux-omap, r-woodruff2, tony
On Mon, May 3, 2010 at 4:35 PM, Kevin Hilman
<khilman@deeprootsystems.com> wrote:
> Mike Chan <mike@android.com> writes:
>
>> IO events can also come from GPIO modules, which reside in the PER domain.
>> It is possible for the PER to enter RET while CORE is still in ON.
>> If GPIO 2-6 are enabled for IO-pad wakeups, the PER domain will not
>> wakeup in this case, unless we enable it.
>>
>> Signed-off-by: Mike Chan <mike@android.com>
>
> Thanks, adding both patches to PM branch (pm-fixes branch) and will
> queue for 2.6.35.
>
Thanks, with this patch looking good, I was hoping for some feedback
from people on the 2nd patch in the series. It makes sense to me since
PER will be woken up now, not just CORE, but I wanted to double check.
-- Mike
> Kevin
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] omap: pm34xx: Enable IO / IO-CHAIN wakeups for PER
2010-05-03 23:48 ` Mike Chan
@ 2010-05-04 19:06 ` Kevin Hilman
0 siblings, 0 replies; 5+ messages in thread
From: Kevin Hilman @ 2010-05-04 19:06 UTC (permalink / raw)
To: Mike Chan; +Cc: linux-omap, r-woodruff2, tony
Mike Chan <mike@android.com> writes:
> On Mon, May 3, 2010 at 4:35 PM, Kevin Hilman
> <khilman@deeprootsystems.com> wrote:
>> Mike Chan <mike@android.com> writes:
>>
>>> IO events can also come from GPIO modules, which reside in the PER domain.
>>> It is possible for the PER to enter RET while CORE is still in ON.
>>> If GPIO 2-6 are enabled for IO-pad wakeups, the PER domain will not
>>> wakeup in this case, unless we enable it.
>>>
>>> Signed-off-by: Mike Chan <mike@android.com>
>>
>> Thanks, adding both patches to PM branch (pm-fixes branch) and will
>> queue for 2.6.35.
>>
>
> Thanks, with this patch looking good, I was hoping for some feedback
> from people on the 2nd patch in the series. It makes sense to me since
> PER will be woken up now, not just CORE, but I wanted to double check.
It makes sense to me too, I've applied both to the pm-fixes branch.
Kevin
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-05-04 19:06 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-03 23:04 [PATCH v2 1/2] omap: pm34xx: Enable IO / IO-CHAIN wakeups for PER Mike Chan
2010-05-03 23:04 ` [PATCH v2 2/2] omap: pm34xx: Remove PER wakeup dependency on CORE Mike Chan
2010-05-03 23:35 ` [PATCH v2 1/2] omap: pm34xx: Enable IO / IO-CHAIN wakeups for PER Kevin Hilman
2010-05-03 23:48 ` Mike Chan
2010-05-04 19:06 ` Kevin Hilman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).