Re: [PATCH] OMAP2/3 clockdomains: combine pwrdm, pwrdm_name into union in struct clockdomain

2008-08-05 Thread Tony Lindgren
* Paul Walmsley [EMAIL PROTECTED] [080718 11:22]:
 
 struct clockdomain contains a struct powerdomain *pwrdm and const char
 *pwrdm_name.  The pwrdm_name is only used at initialization to look up
 the appropriate pwrdm pointer.  Combining these into a union saves
 about 100 bytes on 3430SDP.  This patch should not cause any change in
 kernel function.
 
 Boot-tested on 3430SDP ES2.

Pushing today.

Tony

 Signed-off-by: Paul Walmsley [EMAIL PROTECTED]
 
 size:
textdata bss dec hex filename
 3391587  157104  107136 3655827  37c893 vmlinux.3430sdp.orig
 3391555  157032  107136 3655723  37c82b vmlinux.3430sdp
 ---
 
  arch/arm/mach-omap2/clockdomain.c   |   58 
 ++-
  arch/arm/mach-omap2/clockdomains.h  |   54 +++--
  include/asm-arm/arch-omap/clockdomain.h |   22 +++-
  3 files changed, 67 insertions(+), 67 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/clockdomain.c 
 b/arch/arm/mach-omap2/clockdomain.c
 index 6e5f892..caa7992 100644
 --- a/arch/arm/mach-omap2/clockdomain.c
 +++ b/arch/arm/mach-omap2/clockdomain.c
 @@ -71,14 +71,14 @@ static void _autodep_lookup(struct clkdm_pwrdm_autodep 
 *autodep)
   if (!omap_chip_is(autodep-omap_chip))
   return;
  
 - pwrdm = pwrdm_lookup(autodep-pwrdm_name);
 + pwrdm = pwrdm_lookup(autodep-pwrdm.name);
   if (!pwrdm) {
   pr_debug(clockdomain: _autodep_lookup: powerdomain %s 
 -  does not exist\n, autodep-pwrdm_name);
 +  does not exist\n, autodep-pwrdm.name);
   WARN_ON(1);
   return;
   }
 - autodep-pwrdm = pwrdm;
 + autodep-pwrdm.ptr = pwrdm;
  
   return;
  }
 @@ -95,16 +95,13 @@ static void _clkdm_add_autodeps(struct clockdomain *clkdm)
  {
   struct clkdm_pwrdm_autodep *autodep;
  
 - for (autodep = autodeps; autodep-pwrdm_name; autodep++) {
 - if (!autodep-pwrdm)
 - continue;
 -
 + for (autodep = autodeps; autodep-pwrdm.ptr; autodep++) {
   pr_debug(clockdomain: adding %s sleepdep/wkdep for 
 -  pwrdm %s\n, autodep-pwrdm_name,
 -  clkdm-pwrdm-name);
 +  pwrdm %s\n, autodep-pwrdm.ptr-name,
 +  clkdm-pwrdm.ptr-name);
  
 - pwrdm_add_sleepdep(clkdm-pwrdm, autodep-pwrdm);
 - pwrdm_add_wkdep(clkdm-pwrdm, autodep-pwrdm);
 + pwrdm_add_sleepdep(clkdm-pwrdm.ptr, autodep-pwrdm.ptr);
 + pwrdm_add_wkdep(clkdm-pwrdm.ptr, autodep-pwrdm.ptr);
   }
  }
  
 @@ -120,16 +117,13 @@ static void _clkdm_del_autodeps(struct clockdomain 
 *clkdm)
  {
   struct clkdm_pwrdm_autodep *autodep;
  
 - for (autodep = autodeps; autodep-pwrdm_name; autodep++) {
 - if (!autodep-pwrdm)
 - continue;
 -
 + for (autodep = autodeps; autodep-pwrdm.ptr; autodep++) {
   pr_debug(clockdomain: removing %s sleepdep/wkdep for 
 -  pwrdm %s\n, autodep-pwrdm_name,
 -  clkdm-pwrdm-name);
 +  pwrdm %s\n, autodep-pwrdm.ptr-name,
 +  clkdm-pwrdm.ptr-name);
  
 - pwrdm_del_sleepdep(clkdm-pwrdm, autodep-pwrdm);
 - pwrdm_del_wkdep(clkdm-pwrdm, autodep-pwrdm);
 + pwrdm_del_sleepdep(clkdm-pwrdm.ptr, autodep-pwrdm.ptr);
 + pwrdm_del_wkdep(clkdm-pwrdm.ptr, autodep-pwrdm.ptr);
   }
  }
  
 @@ -179,7 +173,7 @@ void clkdm_init(struct clockdomain **clkdms,
  
   autodeps = init_autodeps;
   if (autodeps)
 - for (autodep = autodeps; autodep-pwrdm_name; autodep++)
 + for (autodep = autodeps; autodep-pwrdm.ptr; autodep++)
   _autodep_lookup(autodep);
  }
  
 @@ -202,13 +196,13 @@ int clkdm_register(struct clockdomain *clkdm)
   if (!omap_chip_is(clkdm-omap_chip))
   return -EINVAL;
  
 - pwrdm = pwrdm_lookup(clkdm-pwrdm_name);
 + pwrdm = pwrdm_lookup(clkdm-pwrdm.name);
   if (!pwrdm) {
   pr_debug(clockdomain: clkdm_register %s: powerdomain %s 
 -  does not exist\n, clkdm-name, clkdm-pwrdm_name);
 +  does not exist\n, clkdm-name, clkdm-pwrdm.name);
   return -EINVAL;
   }
 - clkdm-pwrdm = pwrdm;
 + clkdm-pwrdm.ptr = pwrdm;
  
   mutex_lock(clkdm_mutex);
   /* Verify that the clockdomain is not already registered */
 @@ -242,7 +236,7 @@ int clkdm_unregister(struct clockdomain *clkdm)
   if (!clkdm)
   return -EINVAL;
  
 - pwrdm_del_clkdm(clkdm-pwrdm, clkdm);
 + pwrdm_del_clkdm(clkdm-pwrdm.ptr, clkdm);
  
   mutex_lock(clkdm_mutex);
   list_del(clkdm-node);
 @@ -327,7 +321,7 @@ struct powerdomain *clkdm_get_pwrdm(struct clockdomain 
 *clkdm)
   if (!clkdm)
   return NULL;
  
 - return clkdm-pwrdm;
 + return clkdm-pwrdm.ptr;
  }
  
  
 

[PATCH] OMAP2/3 clockdomains: combine pwrdm, pwrdm_name into union in struct clockdomain

2008-07-18 Thread Paul Walmsley

struct clockdomain contains a struct powerdomain *pwrdm and const char
*pwrdm_name.  The pwrdm_name is only used at initialization to look up
the appropriate pwrdm pointer.  Combining these into a union saves
about 100 bytes on 3430SDP.  This patch should not cause any change in
kernel function.

Boot-tested on 3430SDP ES2.

Signed-off-by: Paul Walmsley [EMAIL PROTECTED]

size:
   textdata bss dec hex filename
3391587  157104  107136 3655827  37c893 vmlinux.3430sdp.orig
3391555  157032  107136 3655723  37c82b vmlinux.3430sdp
---

 arch/arm/mach-omap2/clockdomain.c   |   58 ++-
 arch/arm/mach-omap2/clockdomains.h  |   54 +++--
 include/asm-arm/arch-omap/clockdomain.h |   22 +++-
 3 files changed, 67 insertions(+), 67 deletions(-)

diff --git a/arch/arm/mach-omap2/clockdomain.c 
b/arch/arm/mach-omap2/clockdomain.c
index 6e5f892..caa7992 100644
--- a/arch/arm/mach-omap2/clockdomain.c
+++ b/arch/arm/mach-omap2/clockdomain.c
@@ -71,14 +71,14 @@ static void _autodep_lookup(struct clkdm_pwrdm_autodep 
*autodep)
if (!omap_chip_is(autodep-omap_chip))
return;
 
-   pwrdm = pwrdm_lookup(autodep-pwrdm_name);
+   pwrdm = pwrdm_lookup(autodep-pwrdm.name);
if (!pwrdm) {
pr_debug(clockdomain: _autodep_lookup: powerdomain %s 
-does not exist\n, autodep-pwrdm_name);
+does not exist\n, autodep-pwrdm.name);
WARN_ON(1);
return;
}
-   autodep-pwrdm = pwrdm;
+   autodep-pwrdm.ptr = pwrdm;
 
return;
 }
@@ -95,16 +95,13 @@ static void _clkdm_add_autodeps(struct clockdomain *clkdm)
 {
struct clkdm_pwrdm_autodep *autodep;
 
-   for (autodep = autodeps; autodep-pwrdm_name; autodep++) {
-   if (!autodep-pwrdm)
-   continue;
-
+   for (autodep = autodeps; autodep-pwrdm.ptr; autodep++) {
pr_debug(clockdomain: adding %s sleepdep/wkdep for 
-pwrdm %s\n, autodep-pwrdm_name,
-clkdm-pwrdm-name);
+pwrdm %s\n, autodep-pwrdm.ptr-name,
+clkdm-pwrdm.ptr-name);
 
-   pwrdm_add_sleepdep(clkdm-pwrdm, autodep-pwrdm);
-   pwrdm_add_wkdep(clkdm-pwrdm, autodep-pwrdm);
+   pwrdm_add_sleepdep(clkdm-pwrdm.ptr, autodep-pwrdm.ptr);
+   pwrdm_add_wkdep(clkdm-pwrdm.ptr, autodep-pwrdm.ptr);
}
 }
 
@@ -120,16 +117,13 @@ static void _clkdm_del_autodeps(struct clockdomain *clkdm)
 {
struct clkdm_pwrdm_autodep *autodep;
 
-   for (autodep = autodeps; autodep-pwrdm_name; autodep++) {
-   if (!autodep-pwrdm)
-   continue;
-
+   for (autodep = autodeps; autodep-pwrdm.ptr; autodep++) {
pr_debug(clockdomain: removing %s sleepdep/wkdep for 
-pwrdm %s\n, autodep-pwrdm_name,
-clkdm-pwrdm-name);
+pwrdm %s\n, autodep-pwrdm.ptr-name,
+clkdm-pwrdm.ptr-name);
 
-   pwrdm_del_sleepdep(clkdm-pwrdm, autodep-pwrdm);
-   pwrdm_del_wkdep(clkdm-pwrdm, autodep-pwrdm);
+   pwrdm_del_sleepdep(clkdm-pwrdm.ptr, autodep-pwrdm.ptr);
+   pwrdm_del_wkdep(clkdm-pwrdm.ptr, autodep-pwrdm.ptr);
}
 }
 
@@ -179,7 +173,7 @@ void clkdm_init(struct clockdomain **clkdms,
 
autodeps = init_autodeps;
if (autodeps)
-   for (autodep = autodeps; autodep-pwrdm_name; autodep++)
+   for (autodep = autodeps; autodep-pwrdm.ptr; autodep++)
_autodep_lookup(autodep);
 }
 
@@ -202,13 +196,13 @@ int clkdm_register(struct clockdomain *clkdm)
if (!omap_chip_is(clkdm-omap_chip))
return -EINVAL;
 
-   pwrdm = pwrdm_lookup(clkdm-pwrdm_name);
+   pwrdm = pwrdm_lookup(clkdm-pwrdm.name);
if (!pwrdm) {
pr_debug(clockdomain: clkdm_register %s: powerdomain %s 
-does not exist\n, clkdm-name, clkdm-pwrdm_name);
+does not exist\n, clkdm-name, clkdm-pwrdm.name);
return -EINVAL;
}
-   clkdm-pwrdm = pwrdm;
+   clkdm-pwrdm.ptr = pwrdm;
 
mutex_lock(clkdm_mutex);
/* Verify that the clockdomain is not already registered */
@@ -242,7 +236,7 @@ int clkdm_unregister(struct clockdomain *clkdm)
if (!clkdm)
return -EINVAL;
 
-   pwrdm_del_clkdm(clkdm-pwrdm, clkdm);
+   pwrdm_del_clkdm(clkdm-pwrdm.ptr, clkdm);
 
mutex_lock(clkdm_mutex);
list_del(clkdm-node);
@@ -327,7 +321,7 @@ struct powerdomain *clkdm_get_pwrdm(struct clockdomain 
*clkdm)
if (!clkdm)
return NULL;
 
-   return clkdm-pwrdm;
+   return clkdm-pwrdm.ptr;
 }
 
 
@@ -348,7 +342,7 @@ static int omap2_clkdm_clktrctrl_read(struct