All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tero Kristo <t-kristo@ti.com>
To: linux-omap@vger.kernel.org, khilman@ti.com, paul@pwsan.com
Cc: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv6 07/11] ARM: OMAP3: do not delete per_clkdm autodeps during idle
Date: Tue, 25 Sep 2012 19:05:38 +0300	[thread overview]
Message-ID: <1348589142-11983-8-git-send-email-t-kristo@ti.com> (raw)
In-Reply-To: <1348589142-11983-1-git-send-email-t-kristo@ti.com>

Previously, PER clock domain was always enabled, as the usecounts
for this domain incorrectly always showed positive value. On HW
level though, the domain enters idle as it is set in HW supervised
mode. Now, when the usecounts reflect real values, PER domain
will be put to HWSUP sleep mode, which means its autodeps are deleted.
Removing wakedeps for PER domain will cause multiple problems.
First of all, coming back from idle, PER domain remains idle as the
wakedeps have been disabled for the domain, and this causes a crash
with the GPIO code, as the resume code attempts to access domain
which is not active. Just enabling the interface clocks for the GPIO
does not help, as they are autoidled and don't bring the domain out
of idle. Secondly, there are multiple erratas for omap3, which say
that the wakedeps should be enabled for the PER domain, see e.g.
errata i582 for omap3630.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
---
 arch/arm/mach-omap2/clockdomains3xxx_data.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/clockdomains3xxx_data.c b/arch/arm/mach-omap2/clockdomains3xxx_data.c
index 56089c4..3b3c524 100644
--- a/arch/arm/mach-omap2/clockdomains3xxx_data.c
+++ b/arch/arm/mach-omap2/clockdomains3xxx_data.c
@@ -370,7 +370,7 @@ static struct clockdomain usbhost_am35x_clkdm = {
 static struct clockdomain per_clkdm = {
 	.name		= "per_clkdm",
 	.pwrdm		= { .name = "per_pwrdm" },
-	.flags		= CLKDM_CAN_HWSUP_SWSUP,
+	.flags		= CLKDM_CAN_HWSUP_SWSUP | CLKDM_NO_AUTODEP_DISABLE,
 	.dep_bit	= OMAP3430_EN_PER_SHIFT,
 	.wkdep_srcs	= per_wkdeps,
 	.sleepdep_srcs	= per_sleepdeps,
-- 
1.7.4.1


WARNING: multiple messages have this Message-ID (diff)
From: t-kristo@ti.com (Tero Kristo)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv6 07/11] ARM: OMAP3: do not delete per_clkdm autodeps during idle
Date: Tue, 25 Sep 2012 19:05:38 +0300	[thread overview]
Message-ID: <1348589142-11983-8-git-send-email-t-kristo@ti.com> (raw)
In-Reply-To: <1348589142-11983-1-git-send-email-t-kristo@ti.com>

Previously, PER clock domain was always enabled, as the usecounts
for this domain incorrectly always showed positive value. On HW
level though, the domain enters idle as it is set in HW supervised
mode. Now, when the usecounts reflect real values, PER domain
will be put to HWSUP sleep mode, which means its autodeps are deleted.
Removing wakedeps for PER domain will cause multiple problems.
First of all, coming back from idle, PER domain remains idle as the
wakedeps have been disabled for the domain, and this causes a crash
with the GPIO code, as the resume code attempts to access domain
which is not active. Just enabling the interface clocks for the GPIO
does not help, as they are autoidled and don't bring the domain out
of idle. Secondly, there are multiple erratas for omap3, which say
that the wakedeps should be enabled for the PER domain, see e.g.
errata i582 for omap3630.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
---
 arch/arm/mach-omap2/clockdomains3xxx_data.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/clockdomains3xxx_data.c b/arch/arm/mach-omap2/clockdomains3xxx_data.c
index 56089c4..3b3c524 100644
--- a/arch/arm/mach-omap2/clockdomains3xxx_data.c
+++ b/arch/arm/mach-omap2/clockdomains3xxx_data.c
@@ -370,7 +370,7 @@ static struct clockdomain usbhost_am35x_clkdm = {
 static struct clockdomain per_clkdm = {
 	.name		= "per_clkdm",
 	.pwrdm		= { .name = "per_pwrdm" },
-	.flags		= CLKDM_CAN_HWSUP_SWSUP,
+	.flags		= CLKDM_CAN_HWSUP_SWSUP | CLKDM_NO_AUTODEP_DISABLE,
 	.dep_bit	= OMAP3430_EN_PER_SHIFT,
 	.wkdep_srcs	= per_wkdeps,
 	.sleepdep_srcs	= per_sleepdeps,
-- 
1.7.4.1

  parent reply	other threads:[~2012-09-25 16:06 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-25 16:05 [PATCHv6 00/11]: ARM: OMAP: PM usecounting changes Tero Kristo
2012-09-25 16:05 ` Tero Kristo
2012-09-25 16:05 ` [PATCHv6 01/11] ARM: OMAP: clockdomain: Fix locking on _clkdm_clk_hwmod_enable / disable Tero Kristo
2012-09-25 16:05   ` Tero Kristo
2012-10-16  5:45   ` Paul Walmsley
2012-10-16  5:45     ` Paul Walmsley
2012-10-17  2:25   ` Paul Walmsley
2012-10-17  2:25     ` Paul Walmsley
2012-10-17  2:41     ` Tony Lindgren
2012-10-17  2:41       ` Tony Lindgren
2012-09-25 16:05 ` [PATCHv6 02/11] ARM: OMAP3+: voltage/pwrdm/clkdm/clock add recursive usecount tracking Tero Kristo
2012-09-25 16:05   ` Tero Kristo
2012-09-25 16:05 ` [PATCHv6 03/11] ARM: OMAP3+: voltage: add support for voltagedomain usecounts Tero Kristo
2012-09-25 16:05   ` Tero Kristo
2012-09-25 16:05 ` [PATCHv6 04/11] ARM: OMAP3: add manual control for mpu / core pwrdm usecounting Tero Kristo
2012-09-25 16:05   ` Tero Kristo
2012-09-25 16:05 ` [PATCHv6 05/11] ARM: OMAP3: set autoidle flag for sdrc_ick Tero Kristo
2012-09-25 16:05   ` Tero Kristo
2012-09-25 16:05 ` [PATCHv6 06/11] ARM: OMAP: clockdomain: add support for preventing autodep delete Tero Kristo
2012-09-25 16:05   ` Tero Kristo
2012-09-25 16:05 ` Tero Kristo [this message]
2012-09-25 16:05   ` [PATCHv6 07/11] ARM: OMAP3: do not delete per_clkdm autodeps during idle Tero Kristo
2012-09-25 16:05 ` [PATCHv6 08/11] ARM: OMAP4: clock data: set autoidle flag for dss_fck Tero Kristo
2012-09-25 16:05   ` Tero Kristo
2012-09-25 16:05 ` [PATCHv6 09/11] ARM: OMAP4: hwmod: add support for hwmod autoidle flag Tero Kristo
2012-09-25 16:05   ` Tero Kristo
2012-09-25 16:05 ` [PATCHv6 10/11] ARM: OMAP4: hwmod data: set mpu hwmod modulemode to hwauto Tero Kristo
2012-09-25 16:05   ` Tero Kristo
2012-09-25 16:05 ` [PATCHv6 11/11] ARM: OMAP4: clock data: flag hw controlled clocks as autoidle Tero Kristo
2012-09-25 16:05   ` Tero Kristo

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=1348589142-11983-8-git-send-email-t-kristo@ti.com \
    --to=t-kristo@ti.com \
    --cc=khilman@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=paul@pwsan.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.