summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2012-08-07 01:10:22 +0200
committerRafael J. Wysocki <rjw@sisk.pl>2012-09-04 01:44:56 +0200
commit0d09f450b6ee2065436df9fd4e0f83f9b6d71eaa (patch)
treedc2faf2ef1b34f91f3182884a3962fa213ce8a51
parentARM: shmobile: Use domain names when adding subdomains to power domains (diff)
downloadlinux-0d09f450b6ee2065436df9fd4e0f83f9b6d71eaa.tar.xz
linux-0d09f450b6ee2065436df9fd4e0f83f9b6d71eaa.zip
ARM: shmobile: Add routine for automatic PM domains initialization
Add a new routine, rmobile_init_domains(), allowing the caller to initialize all generic PM objects stored in a table in one operation. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Magnus Damm <damm@opensource.se>
-rw-r--r--arch/arm/mach-shmobile/include/mach/pm-rmobile.h2
-rw-r--r--arch/arm/mach-shmobile/pm-rmobile.c8
2 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/include/mach/pm-rmobile.h b/arch/arm/mach-shmobile/include/mach/pm-rmobile.h
index 7e2487790122..4c264c74760f 100644
--- a/arch/arm/mach-shmobile/include/mach/pm-rmobile.h
+++ b/arch/arm/mach-shmobile/include/mach/pm-rmobile.h
@@ -31,10 +31,12 @@ struct rmobile_pm_domain *to_rmobile_pd(struct generic_pm_domain *d)
#ifdef CONFIG_PM
extern void rmobile_init_pm_domain(struct rmobile_pm_domain *rmobile_pd);
+extern void rmobile_init_domains(struct rmobile_pm_domain domains[], int num);
extern void rmobile_add_device_to_domain(const char *domain_name,
struct platform_device *pdev);
#else
#define rmobile_init_pm_domain(pd) do { } while (0)
+#define rmobile_init_domains(domains, num) do { } while (0)
#define rmobile_add_device_to_domain(name, pdev) do { } while (0)
#endif /* CONFIG_PM */
diff --git a/arch/arm/mach-shmobile/pm-rmobile.c b/arch/arm/mach-shmobile/pm-rmobile.c
index 6c47843c511b..4b6f2ea3169f 100644
--- a/arch/arm/mach-shmobile/pm-rmobile.c
+++ b/arch/arm/mach-shmobile/pm-rmobile.c
@@ -149,6 +149,14 @@ void rmobile_init_pm_domain(struct rmobile_pm_domain *rmobile_pd)
__rmobile_pd_power_up(rmobile_pd, false);
}
+void rmobile_init_domains(struct rmobile_pm_domain domains[], int num)
+{
+ int j;
+
+ for (j = 0; j < num; j++)
+ rmobile_init_pm_domain(&domains[j]);
+}
+
void rmobile_add_device_to_domain(const char *domain_name,
struct platform_device *pdev)
{