Thread (5 messages) 5 messages, 2 authors, 2012-05-15
DORMANTno replies

[PATCH] arm: omap3: am35x: Set proper powerdomain states

From: mgreer@animalcreek.com (Mark A. Greer)
Date: 2012-05-15 18:54:43
Also in: linux-omap

On Tue, May 15, 2012 at 11:35:27AM -0700, Mark A. Greer wrote:
On Tue, May 15, 2012 at 09:43:52AM +0200, Jean Pihet wrote:
quoted
Hi Mark,
Hi Jean.
quoted
On Mon, Apr 30, 2012 at 11:26 PM, Mark A. Greer [off-list ref] wrote:
quoted
From: "Mark A. Greer" <mgreer@animalcreek.com>

The am35x family of SoCs only support the PWRSTS_ON
state so create a new set of powerdomain structures
that ensure that only the ON state is entered.

Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
---
quoted
quoted
?void __init omap3xxx_powerdomains_init(void)
?{
? ? ? ?unsigned int rev;
@@ -301,21 +403,31 @@ void __init omap3xxx_powerdomains_init(void)
? ? ? ? ? ? ? ?return;

? ? ? ?pwrdm_register_platform_funcs(&omap3_pwrdm_operations);
- ? ? ? pwrdm_register_pwrdms(powerdomains_omap3430_common);

? ? ? ?rev = omap_rev();

- ? ? ? if (rev == OMAP3430_REV_ES1_0)
- ? ? ? ? ? ? ? pwrdm_register_pwrdms(powerdomains_omap3430es1);
- ? ? ? else if (rev == OMAP3430_REV_ES2_0 || rev == OMAP3430_REV_ES2_1 ||
- ? ? ? ? ? ? ? ?rev == OMAP3430_REV_ES3_0 || rev == OMAP3630_REV_ES1_0)
- ? ? ? ? ? ? ? pwrdm_register_pwrdms(powerdomains_omap3430es2_es3_0);
- ? ? ? else if (rev == OMAP3430_REV_ES3_1 || rev == OMAP3430_REV_ES3_1_2 ||
- ? ? ? ? ? ? ? ?rev == AM35XX_REV_ES1_0 || rev == AM35XX_REV_ES1_1 ||
- ? ? ? ? ? ? ? ?rev == OMAP3630_REV_ES1_1 || rev == OMAP3630_REV_ES1_2)
- ? ? ? ? ? ? ? pwrdm_register_pwrdms(powerdomains_omap3430es3_1plus);
- ? ? ? else
- ? ? ? ? ? ? ? WARN(1, "OMAP3 powerdomain init: unknown chip type\n");
+ ? ? ? if (rev == AM35XX_REV_ES1_0 || rev == AM35XX_REV_ES1_1) {
+ ? ? ? ? ? ? ? pwrdm_register_pwrdms(powerdomains_am35x);
+ ? ? ? } else {
+ ? ? ? ? ? ? ? pwrdm_register_pwrdms(powerdomains_omap3430_common);
Is there a way to avoid the big 'if else' here and have the code
organized per chipset revision? A mutliple if-else or -even better
IMO- a switch-case would make the code more readable.
We can't avoid it completely because we have to register
powerdomains_am35x[] [exclusive] OR (powerdomains_omap3430_common[] +
extras).  What I can do is leave the outside 'if' and turn the code
inside the 'else' into a switch stmt which should look nicer.
Actually, I had a bug in this version where some domains weren't being
added as they should be for the am35x.  I'll fix that in v2.

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