linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] ARM: OMAP4: powerdomain: Misc powerdomain fix and associated cleanup
@ 2012-03-12 14:34 Santosh Shilimkar
  2012-03-12 14:34 ` [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch() Santosh Shilimkar
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Santosh Shilimkar @ 2012-03-12 14:34 UTC (permalink / raw)
  To: linux-arm-kernel

Paul,
Can you please have at this series ?
First patch is the bug fix and second one is the cleanup which you proposed some
time back.

Santosh Shilimkar (2):
  ARM: OMAP: powerdomain: Wait for powerdomain transition in
    pwrdm_state_switch()
  ARM: OMAP: powerdomain: Get rid off duplicate
    pwrdm_clkdm_state_switch() API

 arch/arm/mach-omap2/clock.c       |    2 +-
 arch/arm/mach-omap2/clockdomain.c |    7 +++----
 arch/arm/mach-omap2/powerdomain.c |   14 +++++---------
 arch/arm/mach-omap2/powerdomain.h |    1 -
 4 files changed, 9 insertions(+), 15 deletions(-)

-- 
1.7.4.1

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

* [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch()
  2012-03-12 14:34 [PATCH 0/2] ARM: OMAP4: powerdomain: Misc powerdomain fix and associated cleanup Santosh Shilimkar
@ 2012-03-12 14:34 ` Santosh Shilimkar
  2012-03-15 17:32   ` Paul Walmsley
  2012-04-03 23:54   ` Paul Walmsley
  2012-03-12 14:34 ` [PATCH 2/2] ARM: OMAP: powerdomain: Get rid off duplicate pwrdm_clkdm_state_switch() API Santosh Shilimkar
  2012-03-12 14:39 ` [PATCH 0/2] ARM: OMAP4: powerdomain: Misc powerdomain fix and associated cleanup Shilimkar, Santosh
  2 siblings, 2 replies; 12+ messages in thread
From: Santosh Shilimkar @ 2012-03-12 14:34 UTC (permalink / raw)
  To: linux-arm-kernel

Commit b1cbdb00d{OMAP: clockdomain: Wait for powerdomain to be ON
when using clockdomain force wakeup} was assuming that pwrdm_state_switch()
does wait for the powerdomain transition which is not the case.

Fix this API by adding the pwrdm_wait_transition().

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
CC: Rajendra Nayak <rnayak@ti.com>
CC: Paul Walmsley <paul@pwsan.com>
---
 arch/arm/mach-omap2/powerdomain.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c
index 8a18d1b..96ad3dbe 100644
--- a/arch/arm/mach-omap2/powerdomain.c
+++ b/arch/arm/mach-omap2/powerdomain.c
@@ -972,7 +972,13 @@ int pwrdm_wait_transition(struct powerdomain *pwrdm)
 
 int pwrdm_state_switch(struct powerdomain *pwrdm)
 {
-	return _pwrdm_state_switch(pwrdm, PWRDM_STATE_NOW);
+	int ret;
+
+	ret = pwrdm_wait_transition(pwrdm);
+	if (!ret)
+		ret = _pwrdm_state_switch(pwrdm, PWRDM_STATE_NOW);
+
+	return ret;
 }
 
 int pwrdm_clkdm_state_switch(struct clockdomain *clkdm)
-- 
1.7.4.1

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

* [PATCH 2/2] ARM: OMAP: powerdomain: Get rid off duplicate pwrdm_clkdm_state_switch() API
  2012-03-12 14:34 [PATCH 0/2] ARM: OMAP4: powerdomain: Misc powerdomain fix and associated cleanup Santosh Shilimkar
  2012-03-12 14:34 ` [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch() Santosh Shilimkar
@ 2012-03-12 14:34 ` Santosh Shilimkar
  2012-04-03 23:58   ` Paul Walmsley
  2012-03-12 14:39 ` [PATCH 0/2] ARM: OMAP4: powerdomain: Misc powerdomain fix and associated cleanup Shilimkar, Santosh
  2 siblings, 1 reply; 12+ messages in thread
From: Santosh Shilimkar @ 2012-03-12 14:34 UTC (permalink / raw)
  To: linux-arm-kernel

With patch 'ARM: OMAP: powerdomain: Wait for powerdomain transition
in pwrdm_state_switch()', the pwrdm_clkdm_state_switch() API becomes
duplicate of pwrdm_state_switch().

Get rid off duplicate pwrdm_clkdm_state_switch() and update the
users of it with pwrdm_state_switch()

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
CC: Rajendra Nayak <rnayak@ti.com>
CC: Paul Walmsley <paul@pwsan.com>
---
 arch/arm/mach-omap2/clock.c       |    2 +-
 arch/arm/mach-omap2/clockdomain.c |    7 +++----
 arch/arm/mach-omap2/powerdomain.c |   10 ----------
 arch/arm/mach-omap2/powerdomain.h |    1 -
 4 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
index f57ed5b..77db067 100644
--- a/arch/arm/mach-omap2/clock.c
+++ b/arch/arm/mach-omap2/clock.c
@@ -439,7 +439,7 @@ void omap2_clk_disable_unused(struct clk *clk)
 		clk->ops->disable(clk);
 	}
 	if (clk->clkdm != NULL)
-		pwrdm_clkdm_state_switch(clk->clkdm);
+		pwrdm_state_switch(clk->clkdm->pwrdm.ptr);
 }
 #endif
 
diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c
index ad07689..8664f5a 100644
--- a/arch/arm/mach-omap2/clockdomain.c
+++ b/arch/arm/mach-omap2/clockdomain.c
@@ -840,7 +840,7 @@ void clkdm_allow_idle(struct clockdomain *clkdm)
 	spin_lock_irqsave(&clkdm->lock, flags);
 	clkdm->_flags |= _CLKDM_FLAG_HWSUP_ENABLED;
 	arch_clkdm->clkdm_allow_idle(clkdm);
-	pwrdm_clkdm_state_switch(clkdm);
+	pwrdm_state_switch(clkdm->pwrdm.ptr);
 	spin_unlock_irqrestore(&clkdm->lock, flags);
 }
 
@@ -924,8 +924,7 @@ static int _clkdm_clk_hwmod_enable(struct clockdomain *clkdm)
 
 	spin_lock_irqsave(&clkdm->lock, flags);
 	arch_clkdm->clkdm_clk_enable(clkdm);
-	pwrdm_wait_transition(clkdm->pwrdm.ptr);
-	pwrdm_clkdm_state_switch(clkdm);
+	pwrdm_state_switch(clkdm->pwrdm.ptr);
 	spin_unlock_irqrestore(&clkdm->lock, flags);
 
 	pr_debug("clockdomain: clkdm %s: enabled\n", clkdm->name);
@@ -950,7 +949,7 @@ static int _clkdm_clk_hwmod_disable(struct clockdomain *clkdm)
 
 	spin_lock_irqsave(&clkdm->lock, flags);
 	arch_clkdm->clkdm_clk_disable(clkdm);
-	pwrdm_clkdm_state_switch(clkdm);
+	pwrdm_state_switch(clkdm->pwrdm.ptr);
 	spin_unlock_irqrestore(&clkdm->lock, flags);
 
 	pr_debug("clockdomain: clkdm %s: disabled\n", clkdm->name);
diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c
index 96ad3dbe..9611490 100644
--- a/arch/arm/mach-omap2/powerdomain.c
+++ b/arch/arm/mach-omap2/powerdomain.c
@@ -981,16 +981,6 @@ int pwrdm_state_switch(struct powerdomain *pwrdm)
 	return ret;
 }
 
-int pwrdm_clkdm_state_switch(struct clockdomain *clkdm)
-{
-	if (clkdm != NULL && clkdm->pwrdm.ptr != NULL) {
-		pwrdm_wait_transition(clkdm->pwrdm.ptr);
-		return pwrdm_state_switch(clkdm->pwrdm.ptr);
-	}
-
-	return -EINVAL;
-}
-
 int pwrdm_pre_transition(void)
 {
 	pwrdm_for_each(_pwrdm_pre_transition_cb, NULL);
diff --git a/arch/arm/mach-omap2/powerdomain.h b/arch/arm/mach-omap2/powerdomain.h
index 0d72a8a..8f88d65 100644
--- a/arch/arm/mach-omap2/powerdomain.h
+++ b/arch/arm/mach-omap2/powerdomain.h
@@ -213,7 +213,6 @@ bool pwrdm_has_hdwr_sar(struct powerdomain *pwrdm);
 int pwrdm_wait_transition(struct powerdomain *pwrdm);
 
 int pwrdm_state_switch(struct powerdomain *pwrdm);
-int pwrdm_clkdm_state_switch(struct clockdomain *clkdm);
 int pwrdm_pre_transition(void);
 int pwrdm_post_transition(void);
 int pwrdm_set_lowpwrstchange(struct powerdomain *pwrdm);
-- 
1.7.4.1

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

* [PATCH 0/2] ARM: OMAP4: powerdomain: Misc powerdomain fix and associated cleanup
  2012-03-12 14:34 [PATCH 0/2] ARM: OMAP4: powerdomain: Misc powerdomain fix and associated cleanup Santosh Shilimkar
  2012-03-12 14:34 ` [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch() Santosh Shilimkar
  2012-03-12 14:34 ` [PATCH 2/2] ARM: OMAP: powerdomain: Get rid off duplicate pwrdm_clkdm_state_switch() API Santosh Shilimkar
@ 2012-03-12 14:39 ` Shilimkar, Santosh
  2 siblings, 0 replies; 12+ messages in thread
From: Shilimkar, Santosh @ 2012-03-12 14:39 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Mar 12, 2012 at 8:04 PM, Santosh Shilimkar
<santosh.shilimkar@ti.com> wrote:
> Paul,
> Can you please have at this series ?
> First patch is the bug fix and second one is the cleanup which you proposed some
> time back.
>
In $subject
s/OMAP4/OMAP

Regards
Santosh

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

* [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch()
  2012-03-12 14:34 ` [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch() Santosh Shilimkar
@ 2012-03-15 17:32   ` Paul Walmsley
  2012-03-15 17:51     ` Tony Lindgren
  2012-04-03 23:54   ` Paul Walmsley
  1 sibling, 1 reply; 12+ messages in thread
From: Paul Walmsley @ 2012-03-15 17:32 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 12 Mar 2012, Santosh Shilimkar wrote:

> Commit b1cbdb00d{OMAP: clockdomain: Wait for powerdomain to be ON
> when using clockdomain force wakeup} was assuming that pwrdm_state_switch()
> does wait for the powerdomain transition which is not the case.
> 
> Fix this API by adding the pwrdm_wait_transition().
> 
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> CC: Rajendra Nayak <rnayak@ti.com>
> CC: Paul Walmsley <paul@pwsan.com>

Acked-by: Paul Walmsley <paul@pwsan.com>

Sounds like this fixes a major kernel oops bug for Tony so this should go 
in ASAP to v3.3-rc series.


- Paul

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

* [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch()
  2012-03-15 17:32   ` Paul Walmsley
@ 2012-03-15 17:51     ` Tony Lindgren
  2012-03-15 23:01       ` Paul Walmsley
  0 siblings, 1 reply; 12+ messages in thread
From: Tony Lindgren @ 2012-03-15 17:51 UTC (permalink / raw)
  To: linux-arm-kernel

* Paul Walmsley <paul@pwsan.com> [120315 10:35]:
> On Mon, 12 Mar 2012, Santosh Shilimkar wrote:
> 
> > Commit b1cbdb00d{OMAP: clockdomain: Wait for powerdomain to be ON
> > when using clockdomain force wakeup} was assuming that pwrdm_state_switch()
> > does wait for the powerdomain transition which is not the case.
> > 
> > Fix this API by adding the pwrdm_wait_transition().
> > 
> > Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> > CC: Rajendra Nayak <rnayak@ti.com>
> > CC: Paul Walmsley <paul@pwsan.com>
> 
> Acked-by: Paul Walmsley <paul@pwsan.com>
> 
> Sounds like this fixes a major kernel oops bug for Tony so this should go 
> in ASAP to v3.3-rc series.

Got a random oops with this one applied still, just happened
to take longer this time :(

Regards,

Tony

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

* [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch()
  2012-03-15 17:51     ` Tony Lindgren
@ 2012-03-15 23:01       ` Paul Walmsley
  2012-03-15 23:22         ` Tony Lindgren
  0 siblings, 1 reply; 12+ messages in thread
From: Paul Walmsley @ 2012-03-15 23:01 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 15 Mar 2012, Tony Lindgren wrote:

> * Paul Walmsley <paul@pwsan.com> [120315 10:35]:
> > On Mon, 12 Mar 2012, Santosh Shilimkar wrote:
> > 
> > > Commit b1cbdb00d{OMAP: clockdomain: Wait for powerdomain to be ON
> > > when using clockdomain force wakeup} was assuming that pwrdm_state_switch()
> > > does wait for the powerdomain transition which is not the case.
> > > 
> > > Fix this API by adding the pwrdm_wait_transition().
> > > 
> > > Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> > > CC: Rajendra Nayak <rnayak@ti.com>
> > > CC: Paul Walmsley <paul@pwsan.com>
> > 
> > Acked-by: Paul Walmsley <paul@pwsan.com>
> > 
> > Sounds like this fixes a major kernel oops bug for Tony so this should go 
> > in ASAP to v3.3-rc series.
> 
> Got a random oops with this one applied still, just happened
> to take longer this time :(

Oh well.  Will queue it for v3.4-rc1 then...


- Paul

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

* [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch()
  2012-03-15 23:01       ` Paul Walmsley
@ 2012-03-15 23:22         ` Tony Lindgren
  2012-03-15 23:34           ` Paul Walmsley
  0 siblings, 1 reply; 12+ messages in thread
From: Tony Lindgren @ 2012-03-15 23:22 UTC (permalink / raw)
  To: linux-arm-kernel

* Paul Walmsley <paul@pwsan.com> [120315 16:04]:
> On Thu, 15 Mar 2012, Tony Lindgren wrote:
> 
> > * Paul Walmsley <paul@pwsan.com> [120315 10:35]:
> > > On Mon, 12 Mar 2012, Santosh Shilimkar wrote:
> > > 
> > > > Commit b1cbdb00d{OMAP: clockdomain: Wait for powerdomain to be ON
> > > > when using clockdomain force wakeup} was assuming that pwrdm_state_switch()
> > > > does wait for the powerdomain transition which is not the case.
> > > > 
> > > > Fix this API by adding the pwrdm_wait_transition().
> > > > 
> > > > Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> > > > CC: Rajendra Nayak <rnayak@ti.com>
> > > > CC: Paul Walmsley <paul@pwsan.com>
> > > 
> > > Acked-by: Paul Walmsley <paul@pwsan.com>
> > > 
> > > Sounds like this fixes a major kernel oops bug for Tony so this should go 
> > > in ASAP to v3.3-rc series.
> > 
> > Got a random oops with this one applied still, just happened
> > to take longer this time :(
> 
> Oh well.  Will queue it for v3.4-rc1 then...

It seems that I need this patch plus need to undo the wrong
serial muxing in commit 7496ba30 (ARM: OMAP2+: UART: Add default mux
for all uarts) to make my zoom3 boot reliably.

Regards,

Tony

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

* [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch()
  2012-03-15 23:22         ` Tony Lindgren
@ 2012-03-15 23:34           ` Paul Walmsley
  2012-03-15 23:40             ` Tony Lindgren
  0 siblings, 1 reply; 12+ messages in thread
From: Paul Walmsley @ 2012-03-15 23:34 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 15 Mar 2012, Tony Lindgren wrote:

> It seems that I need this patch plus need to undo the wrong
> serial muxing in commit 7496ba30 (ARM: OMAP2+: UART: Add default mux
> for all uarts) to make my zoom3 boot reliably.

Okay.  Well want to take the powerdomain patch for the v3.3-rc series 
then?

- Paul

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

* [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch()
  2012-03-15 23:34           ` Paul Walmsley
@ 2012-03-15 23:40             ` Tony Lindgren
  0 siblings, 0 replies; 12+ messages in thread
From: Tony Lindgren @ 2012-03-15 23:40 UTC (permalink / raw)
  To: linux-arm-kernel

* Paul Walmsley <paul@pwsan.com> [120315 16:36]:
> On Thu, 15 Mar 2012, Tony Lindgren wrote:
> 
> > It seems that I need this patch plus need to undo the wrong
> > serial muxing in commit 7496ba30 (ARM: OMAP2+: UART: Add default mux
> > for all uarts) to make my zoom3 boot reliably.
> 
> Okay.  Well want to take the powerdomain patch for the v3.3-rc series 
> then?

Uhh now got a random issue of "BUG: bad unlock balance detected"..
Random oopses seem less common now, but still not booting reliably.

Regards,

Tony

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

* [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch()
  2012-03-12 14:34 ` [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch() Santosh Shilimkar
  2012-03-15 17:32   ` Paul Walmsley
@ 2012-04-03 23:54   ` Paul Walmsley
  1 sibling, 0 replies; 12+ messages in thread
From: Paul Walmsley @ 2012-04-03 23:54 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 12 Mar 2012, Santosh Shilimkar wrote:

> Commit b1cbdb00d{OMAP: clockdomain: Wait for powerdomain to be ON
> when using clockdomain force wakeup} was assuming that pwrdm_state_switch()
> does wait for the powerdomain transition which is not the case.
> 
> Fix this API by adding the pwrdm_wait_transition().
> 
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> CC: Rajendra Nayak <rnayak@ti.com>
> CC: Paul Walmsley <paul@pwsan.com>

Thanks, queued for 3.4-rc.


- Paul

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

* [PATCH 2/2] ARM: OMAP: powerdomain: Get rid off duplicate pwrdm_clkdm_state_switch() API
  2012-03-12 14:34 ` [PATCH 2/2] ARM: OMAP: powerdomain: Get rid off duplicate pwrdm_clkdm_state_switch() API Santosh Shilimkar
@ 2012-04-03 23:58   ` Paul Walmsley
  0 siblings, 0 replies; 12+ messages in thread
From: Paul Walmsley @ 2012-04-03 23:58 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 12 Mar 2012, Santosh Shilimkar wrote:

> With patch 'ARM: OMAP: powerdomain: Wait for powerdomain transition
> in pwrdm_state_switch()', the pwrdm_clkdm_state_switch() API becomes
> duplicate of pwrdm_state_switch().
> 
> Get rid off duplicate pwrdm_clkdm_state_switch() and update the
> users of it with pwrdm_state_switch()
> 
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> CC: Rajendra Nayak <rnayak@ti.com>
> CC: Paul Walmsley <paul@pwsan.com>

Thanks, queued for 3.5.


- Paul

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

end of thread, other threads:[~2012-04-03 23:58 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-12 14:34 [PATCH 0/2] ARM: OMAP4: powerdomain: Misc powerdomain fix and associated cleanup Santosh Shilimkar
2012-03-12 14:34 ` [PATCH 1/2] ARM: OMAP: powerdomain: Wait for powerdomain transition in pwrdm_state_switch() Santosh Shilimkar
2012-03-15 17:32   ` Paul Walmsley
2012-03-15 17:51     ` Tony Lindgren
2012-03-15 23:01       ` Paul Walmsley
2012-03-15 23:22         ` Tony Lindgren
2012-03-15 23:34           ` Paul Walmsley
2012-03-15 23:40             ` Tony Lindgren
2012-04-03 23:54   ` Paul Walmsley
2012-03-12 14:34 ` [PATCH 2/2] ARM: OMAP: powerdomain: Get rid off duplicate pwrdm_clkdm_state_switch() API Santosh Shilimkar
2012-04-03 23:58   ` Paul Walmsley
2012-03-12 14:39 ` [PATCH 0/2] ARM: OMAP4: powerdomain: Misc powerdomain fix and associated cleanup Shilimkar, Santosh

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).