[PATCH 1/2] OMAP3: cpuidle: prevent CORE power domain from going to RET or OFF when DSS is on

STALE5662d

3 messages, 3 authors, 2011-03-10 · open the first message on its own page

[PATCH 1/2] OMAP3: cpuidle: prevent CORE power domain from going to RET or OFF when DSS is on

From: Kevin Hilman <hidden>
Date: 2011-03-04 16:56:07

Hi Tero,

[off-list ref] writes:

[...]
quoted
quoted
+	/* If DSS is active, prevent CORE RET/OFF */
+	dss_state = pwrdm_read_pwrst(dss_pd);
+	if (dss_state == PWRDM_POWER_ON &&
+	    core_next_state != PWRDM_POWER_ON)
+		core_next_state = PWRDM_POWER_INACTIVE;
+
Due to sleepdeps/autodeps, when this code runs, DSS powerdomain is
always on.  The result is that CORE is always set to INACTIVE.
Now I recall that someone was asking about a patch similar to this
earlier, and had the same issue with DSS sleepdep collision.
What is the reason for having the sleepdep for DSS powerdomain anyway?
At least I can't see any reason why the sleepdep for DSS should be
set. In my opinion it should be perfectly okay for DSS domain to idle
independently of MPU/CORE, as this is going to be better for power
consumption also.
Agreed, but currently the sleepdeps with MPU are automatically managed
(by clkdm autodeps and hwmod initiator deps.)  Until we have merged a
solution to more selectively enable sleepdeps (or remove them) $SUBJECT
patch cannot be merged.

Kevin

[PATCH 1/2] OMAP3: cpuidle: prevent CORE power domain from going to RET or OFF when DSS is on

From: Tero.Kristo at nokia.com <hidden>
Date: 2011-03-07 12:02:22

-----Original Message-----
From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
owner at vger.kernel.org] On Behalf Of ext Kevin Hilman
Sent: 04 March, 2011 18:56
To: Kristo Tero (Nokia-MS/Tampere)
Cc: paul at pwsan.com; linux-omap at vger.kernel.org; linux-arm-
kernel at lists.infradead.org
Subject: Re: [PATCH 1/2] OMAP3: cpuidle: prevent CORE power domain from
going to RET or OFF when DSS is on

Hi Tero,

[off-list ref] writes:

[...]
quoted
quoted
quoted
+	/* If DSS is active, prevent CORE RET/OFF */
+	dss_state = pwrdm_read_pwrst(dss_pd);
+	if (dss_state == PWRDM_POWER_ON &&
+	    core_next_state != PWRDM_POWER_ON)
+		core_next_state = PWRDM_POWER_INACTIVE;
+
Due to sleepdeps/autodeps, when this code runs, DSS powerdomain is
always on.  The result is that CORE is always set to INACTIVE.
Now I recall that someone was asking about a patch similar to this
earlier, and had the same issue with DSS sleepdep collision.
quoted
What is the reason for having the sleepdep for DSS powerdomain anyway?
At least I can't see any reason why the sleepdep for DSS should be
set. In my opinion it should be perfectly okay for DSS domain to idle
independently of MPU/CORE, as this is going to be better for power
consumption also.
Agreed, but currently the sleepdeps with MPU are automatically managed
(by clkdm autodeps and hwmod initiator deps.)  Until we have merged a
solution to more selectively enable sleepdeps (or remove them) $SUBJECT
patch cannot be merged.
Ok I thought this is the case... it would be possible to implement a temporary/permanent solution that uses idle status check instead of pwrdm state check, and prevent core idle if dss is not going to idle. What is the current status with those idlest patches anyway?

-Tero

[PATCH 1/2] OMAP3: cpuidle: prevent CORE power domain from going to RET or OFF when DSS is on

From: paul@pwsan.com (Paul Walmsley)
Date: 2011-03-10 10:17:32

Hi Tero,

On Mon, 7 Mar 2011, Tero.Kristo at nokia.com wrote:
What is the current status with those idlest patches anyway?
They aren't completed yet, so they won't make it into 2.6.39.  I hope to 
get them in early in 2.6.40.


- Paul
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help