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;
}
next prev 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