ARM: shmobile: Move r8a7779's PM domain objects to a table
authorRafael J. Wysocki <rjw@sisk.pl>
Mon, 6 Aug 2012 23:14:14 +0000 (01:14 +0200)
committerRafael J. Wysocki <rjw@sisk.pl>
Mon, 3 Sep 2012 23:44:58 +0000 (01:44 +0200)
Instead of giving a name to every r8a7779's PM domain object, put
them all into a table and initialize them all together in a loop.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Magnus Damm <damm@opensource.se>
arch/arm/mach-shmobile/include/mach/r8a7779.h
arch/arm/mach-shmobile/pm-r8a7779.c
arch/arm/mach-shmobile/setup-r8a7779.c

index e0dcef0aa4c4bafb2333636c19c5a9fe3c1acb35..7ad47977d2e7ba15e1b0674b0b96c292e050dd3d 100644 (file)
@@ -347,14 +347,9 @@ extern int r8a7779_sysc_power_down(struct r8a7779_pm_ch *r8a7779_ch);
 extern int r8a7779_sysc_power_up(struct r8a7779_pm_ch *r8a7779_ch);
 
 #ifdef CONFIG_PM
-extern struct r8a7779_pm_domain r8a7779_sh4a;
-extern struct r8a7779_pm_domain r8a7779_sgx;
-extern struct r8a7779_pm_domain r8a7779_vdp1;
-extern struct r8a7779_pm_domain r8a7779_impx3;
-
-extern void r8a7779_init_pm_domain(struct r8a7779_pm_domain *r8a7779_pd);
+extern void __init r8a7779_init_pm_domains(void);
 #else
-#define r8a7779_init_pm_domain(pd) do { } while (0)
+static inline void r8a7779_init_pm_domains(void) {}
 #endif /* CONFIG_PM */
 
 #endif /* __ASM_R8A7779_H__ */
index b2a98cca66d3dcd0a397f8a5444b94326438e17f..d50a8e9b94a4f9ac7030bdc49dc5450674e5af9a 100644 (file)
@@ -183,7 +183,7 @@ static bool pd_active_wakeup(struct device *dev)
        return true;
 }
 
-void r8a7779_init_pm_domain(struct r8a7779_pm_domain *r8a7779_pd)
+static void r8a7779_init_pm_domain(struct r8a7779_pm_domain *r8a7779_pd)
 {
        struct generic_pm_domain *genpd = &r8a7779_pd->genpd;
 
@@ -199,37 +199,44 @@ void r8a7779_init_pm_domain(struct r8a7779_pm_domain *r8a7779_pd)
                pd_power_up(&r8a7779_pd->genpd);
 }
 
-struct r8a7779_pm_domain r8a7779_sh4a = {
-       .genpd.name = "SH4A",
-       .ch = {
-               .chan_offs = 0x80, /* PWRSR1 .. PWRER1 */
-               .isr_bit = 16, /* SH4A */
-       }
+static struct r8a7779_pm_domain r8a7779_pm_domains[] = {
+       {
+               .genpd.name = "SH4A",
+               .ch = {
+                       .chan_offs = 0x80, /* PWRSR1 .. PWRER1 */
+                       .isr_bit = 16, /* SH4A */
+               },
+       },
+       {
+               .genpd.name = "SGX",
+               .ch = {
+                       .chan_offs = 0xc0, /* PWRSR2 .. PWRER2 */
+                       .isr_bit = 20, /* SGX */
+               },
+       },
+       {
+               .genpd.name = "VDP1",
+               .ch = {
+                       .chan_offs = 0x100, /* PWRSR3 .. PWRER3 */
+                       .isr_bit = 21, /* VDP */
+               },
+       },
+       {
+               .genpd.name = "IMPX3",
+               .ch = {
+                       .chan_offs = 0x140, /* PWRSR4 .. PWRER4 */
+                       .isr_bit = 24, /* IMP */
+               },
+       },
 };
 
-struct r8a7779_pm_domain r8a7779_sgx = {
-       .genpd.name = "SGX",
-       .ch = {
-               .chan_offs = 0xc0, /* PWRSR2 .. PWRER2 */
-               .isr_bit = 20, /* SGX */
-       }
-};
-
-struct r8a7779_pm_domain r8a7779_vdp1 = {
-       .genpd.name = "VDP1",
-       .ch = {
-               .chan_offs = 0x100, /* PWRSR3 .. PWRER3 */
-               .isr_bit = 21, /* VDP */
-       }
-};
+void __init r8a7779_init_pm_domains(void)
+{
+       int j;
 
-struct r8a7779_pm_domain r8a7779_impx3 = {
-       .genpd.name = "IMPX3",
-       .ch = {
-               .chan_offs = 0x140, /* PWRSR4 .. PWRER4 */
-               .isr_bit = 24, /* IMP */
-       }
-};
+       for (j = 0; j < ARRAY_SIZE(r8a7779_pm_domains); j++)
+               r8a7779_init_pm_domain(&r8a7779_pm_domains[j]);
+}
 
 #endif /* CONFIG_PM */
 
index e98e46f6cf5508f8b1750c7abb2b2effd45a80db..2917668f0091c1042a70e512f50c12bacdb3ebb2 100644 (file)
@@ -251,10 +251,7 @@ void __init r8a7779_add_standard_devices(void)
 #endif
        r8a7779_pm_init();
 
-       r8a7779_init_pm_domain(&r8a7779_sh4a);
-       r8a7779_init_pm_domain(&r8a7779_sgx);
-       r8a7779_init_pm_domain(&r8a7779_vdp1);
-       r8a7779_init_pm_domain(&r8a7779_impx3);
+       r8a7779_init_pm_domains();
 
        platform_add_devices(r8a7779_early_devices,
                            ARRAY_SIZE(r8a7779_early_devices));