Signed-off-by: Peter 'p2' De Schrijver <[EMAIL PROTECTED]>
---
 arch/arm/mach-omap2/pm-debug.c |  107 ++++++----------------------------------
 1 files changed, 16 insertions(+), 91 deletions(-)

diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c
index 380a2a0..a375312 100644
--- a/arch/arm/mach-omap2/pm-debug.c
+++ b/arch/arm/mach-omap2/pm-debug.c
@@ -318,94 +318,20 @@ int pm_dbg_regset_save(int reg_set)
        return 0;
 }
 
-static int _pm_dbg_state_switch(struct powerdomain *pwrdm, int flag)
+void pm_dbg_update_time(struct powerdomain *pwrdm, int prev)
 {
        s64 t;
        struct timespec now;
-       int prev;
-       int state;
 
-       if (pwrdm == NULL)
-               return -EINVAL;
-
-       state = pwrdm_read_pwrst(pwrdm);
-
-       switch (flag) {
-       case PM_DBG_STATE_NOW:
-               prev = pwrdm->state;
-               break;
-       case PM_DBG_STATE_PREV:
-               prev = pwrdm_read_prev_pwrst(pwrdm);
-               if (pwrdm->state != prev)
-                       pwrdm->state_counter[prev]++;
-               break;
-       default:
-               return -EINVAL;
-       }
-
-       if (pm_dbg_init_done) {
-               /* Update timer for previous state */
-               getnstimeofday(&now);
-               t = timespec_to_ns(&now);
-
-               pwrdm->state_timer[prev] += t - pwrdm->timer;
-
-               pwrdm->timer = t;
-
-               if (state != prev)
-                       pwrdm->state_counter[state]++;
-       }
-
-       pwrdm->state = state;
-
-       return 0;
-}
-
-int pm_dbg_pwrdm_state_switch(struct powerdomain *pwrdm)
-{
-       return _pm_dbg_state_switch(pwrdm, PM_DBG_STATE_NOW);
-}
-
-int pm_dbg_clkdm_state_switch(struct clockdomain *clkdm)
-{
-       if (clkdm != NULL && clkdm->pwrdm.ptr != NULL) {
-               pwrdm_wait_transition(clkdm->pwrdm.ptr);
-               return pm_dbg_pwrdm_state_switch(clkdm->pwrdm.ptr);
-       }
-
-       return -EINVAL;
-}
-
-int pm_dbg_clk_state_switch(struct clk *clk)
-{
-       if (clk != NULL && clk->clkdm.ptr != NULL)
-               return pm_dbg_clkdm_state_switch(clk->clkdm.ptr);
-       return -EINVAL;
-}
+       if (!pm_dbg_init_done)
+               return;
 
-static int pm_dbg_pre_suspend_cb(struct powerdomain *pwrdm)
-{
-       pwrdm_clear_all_prev_pwrst(pwrdm);
-       _pm_dbg_state_switch(pwrdm, PM_DBG_STATE_NOW);
-       return 0;
-}
-
-static int pm_dbg_post_suspend_cb(struct powerdomain *pwrdm)
-{
-       _pm_dbg_state_switch(pwrdm, PM_DBG_STATE_PREV);
-       return 0;
-}
+       getnstimeofday(&now);
+       t = timespec_to_ns(&now);
 
-int pm_dbg_pre_suspend(void)
-{
-       pwrdm_for_each(pm_dbg_pre_suspend_cb);
-       return 0;
-}
+       pwrdm->state_timer[prev] += t - pwrdm->timer;
 
-int pm_dbg_post_suspend(void)
-{
-       pwrdm_for_each(pm_dbg_post_suspend_cb);
-       return 0;
+       pwrdm->timer = t;
 }
 
 enum {
@@ -489,25 +415,23 @@ int pm_dbg_regset_init(int reg_set)
        return 0;
 }
 
-static int __init pwrdms_setup(struct powerdomain *pwrdm)
+int __init _pwrdm_debug_setup(struct powerdomain *pwrdm, void *user)
 {
-       s64 t;
-       int i;
+       s64 t=0;
        struct timespec now;
+       int i;
+
+printk("pwrdm: %p\n",pwrdm);
 
        getnstimeofday(&now);
        t = timespec_to_ns(&now);
 
+       pwrdm->timer = t;
+
        for (i = 0; i < 4; i++) {
-               pwrdm->state_counter[i] = 0;
                pwrdm->state_timer[i] = 0;
        }
 
-       pwrdm_wait_transition(pwrdm);
-       pwrdm->state = pwrdm_read_pwrst(pwrdm);
-       pwrdm->state_counter[pwrdm->state] = 1;
-       pwrdm->timer = t;
-
        (void) debugfs_create_file(pwrdm->name, S_IRUGO|S_IWUSR,
                pm_dbg_dir, pwrdm, &debug_pwrdm_fops);
 
@@ -535,7 +459,7 @@ static int __init pm_dbg_init(void)
        if (IS_ERR(pm_dbg_dir))
                return PTR_ERR(pm_dbg_dir);
 
-       pwrdm_for_each(pwrdms_setup);
+       pwrdm_for_each(_pwrdm_debug_setup, NULL);
 
        pm_dbg_dir = debugfs_create_dir("registers", d);
        if (IS_ERR(pm_dbg_dir))
@@ -552,6 +476,7 @@ static int __init pm_dbg_init(void)
 
                }
 
+
        pm_dbg_init_done = 1;
 
        return 0;
-- 
1.5.6.3

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to