public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
From: Paul Walmsley <paul@pwsan.com>
To: linux-arm-kernel@lists.arm.linux.org.uk, linux-kernel@vger.kernel.org
Cc: linux-omap@vger.kernel.org,
	Tomi Valkeinen <tomi.valkeinen@nokia.com>,
	Paul Walmsley <paul@pwsan.com>, Tony Lindgren <tony@atomide.com>
Subject: [PATCH B 08/10] OMAP: wait for pwrdm transition after clk_enable()
Date: Tue, 27 Jan 2009 19:44:31 -0700	[thread overview]
Message-ID: <20090128024428.27240.35785.stgit@localhost.localdomain> (raw)
In-Reply-To: <20090128024301.27240.39391.stgit@localhost.localdomain>

From: Tomi Valkeinen <tomi.valkeinen@nokia.com>

Enabling clock in a disabled power domain causes the power domain to be
turned on. However, the power transition is not always finished when
clk_enable() returns and this randomly crashes the kernel when an
interrupt happens right after the clk_enable, and the kernel tries to
read the irq status register for that domain.

Why the irq status register is inaccessible, I don't know. Also it
doesn't seem to be related to the module being not powered up, but to
the transition itself.

The same could perhaps happen after clk_disable also, but I have not
witnessed that.

The problem affects at least dss, cam and sgx clocks.

This change waits for the transition to be finished before returning
from omap2_clkdm_clk_enable().

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap2/clockdomain.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c
index 882809d..ad6dfe4 100644
--- a/arch/arm/mach-omap2/clockdomain.c
+++ b/arch/arm/mach-omap2/clockdomain.c
@@ -561,6 +561,8 @@ int omap2_clkdm_clk_enable(struct clockdomain *clkdm, struct clk *clk)
 	else
 		omap2_clkdm_wakeup(clkdm);
 
+	pwrdm_wait_transition(clkdm->pwrdm.ptr);
+
 	return 0;
 }
 



  parent reply	other threads:[~2009-01-28 20:24 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-28  2:44 [PATCH B 00/10] OMAP clock, B of F: clockdomain, powerdomain updates Paul Walmsley
2009-01-28  2:44 ` [PATCH B 01/10] OMAP2/3 clock: combine clkdm, clkdm_name into union in struct clk Paul Walmsley
2009-01-31 11:55   ` Russell King - ARM Linux
2009-02-03  8:47     ` Paul Walmsley
2009-02-04 22:47       ` Paul Walmsley
2009-01-28  2:44 ` [PATCH B 02/10] OMAP2/3 clockdomains: combine pwrdm, pwrdm_name into union in struct clockdomain Paul Walmsley
2009-01-31 12:01   ` Russell King - ARM Linux
2009-02-03  9:20     ` Paul Walmsley
2009-02-03 15:52       ` Russell King - ARM Linux
2009-02-04 20:48         ` Paul Walmsley
2009-01-28  2:44 ` [PATCH B 03/10] OMAP2/3 clockdomains: add CM, PRM, virt_opp_clkdm clockdomains Paul Walmsley
2009-01-31 14:09   ` Russell King - ARM Linux
2009-01-28  2:44 ` [PATCH B 04/10] OMAP3 PRCM: add DPLL1-5 powerdomains, clockdomains; mark clocks Paul Walmsley
2009-01-31 14:17   ` Russell King - ARM Linux
2009-01-28  2:44 ` [PATCH B 05/10] OMAP2/3 clock: add clockdomains to all remaining clocks; fix clkdm init Paul Walmsley
2009-01-31 14:21   ` Russell King - ARM Linux
2009-01-28  2:44 ` [PATCH B 06/10] OMAP3 pwrdm: add CORE SAR handling (for USBTLL module) Paul Walmsley
2009-01-29  2:21   ` Woodruff, Richard
2009-01-29  7:47     ` Paul Walmsley
2009-01-29  9:15       ` Paul Walmsley
2009-01-31 14:22         ` Russell King - ARM Linux
2009-02-06  3:52           ` Paul Walmsley
2009-02-23 14:38             ` Russell King - ARM Linux
2009-02-28  0:47               ` Paul Walmsley
2009-01-28  2:44 ` [PATCH B 07/10] OMAP3 powerdomains: remove RET from SGX power states list Paul Walmsley
2009-01-28  2:44 ` Paul Walmsley [this message]
2009-01-28  2:44 ` [PATCH B 09/10] OMAP2/3 clockdomains: autodeps should respect platform flags Paul Walmsley
2009-01-28  2:44 ` [PATCH B 10/10] OMAP3: PM: Emu_pwrdm is switched off by hardware even when sdti is in use Paul Walmsley

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=20090128024428.27240.35785.stgit@localhost.localdomain \
    --to=paul@pwsan.com \
    --cc=linux-arm-kernel@lists.arm.linux.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=tomi.valkeinen@nokia.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox