* [PATCH 0/3] Implement powerdomain off on state counters
@ 2008-07-24 13:00 Peter 'p2' De Schrijver
2008-07-24 13:00 ` [PATCH 1/3] Power off on state counter debugging Peter 'p2' De Schrijver
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Peter 'p2' De Schrijver @ 2008-07-24 13:00 UTC (permalink / raw)
To: linux-omap; +Cc: Peter 'p2' De Schrijver
This patchset implement counters to count the number of off to on state transitions in a powerdomain. These counters will be made available to
drivers in a later patchset to allow them to make a better informed decision wether to restore the hardware registers or not.
Peter 'p2' De Schrijver (3):
Power off on state counter debugging
Power off on state counter infrastructure
Add hooks for counting off on power transitions
arch/arm/mach-omap2/Makefile | 2 +-
arch/arm/mach-omap2/clockdomain.c | 10 +++++
arch/arm/mach-omap2/off-state-counter-debug.c | 50 +++++++++++++++++++++++++
arch/arm/mach-omap2/pm34xx.c | 6 ++-
arch/arm/mach-omap2/powerdomain.c | 48 +++++++++++++++++++++++-
include/asm-arm/arch-omap/powerdomain.h | 9 ++++-
6 files changed, 120 insertions(+), 5 deletions(-)
create mode 100644 arch/arm/mach-omap2/off-state-counter-debug.c
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 1/3] Power off on state counter debugging 2008-07-24 13:00 [PATCH 0/3] Implement powerdomain off on state counters Peter 'p2' De Schrijver @ 2008-07-24 13:00 ` Peter 'p2' De Schrijver 2008-07-24 13:00 ` [PATCH 2/3] power off on state counter infrastructure Peter 'p2' De Schrijver 2008-09-04 19:20 ` [PATCH 1/3] Power off on state counter debugging Kevin Hilman 2008-07-24 13:04 ` [PATCH 0/3] Implement powerdomain off on state counters Peter 'p2' De Schrijver 2008-08-05 14:20 ` Tony Lindgren 2 siblings, 2 replies; 10+ messages in thread From: Peter 'p2' De Schrijver @ 2008-07-24 13:00 UTC (permalink / raw) To: linux-omap; +Cc: Peter 'p2' De Schrijver Signed-off-by: Peter 'p2' De Schrijver <peter.de-schrijver@nokia.com> --- arch/arm/mach-omap2/Makefile | 2 +- arch/arm/mach-omap2/off-state-counter-debug.c | 50 +++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletions(-) create mode 100644 arch/arm/mach-omap2/off-state-counter-debug.c diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 0d8507c..a48f832 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -5,7 +5,7 @@ # Common support obj-y := irq.o id.o io.o memory.o control.o prcm.o clock.o mux.o \ devices.o serial.o gpmc.o timer-gp.o powerdomain.o \ - clockdomain.o + clockdomain.o off-state-counter-debug.o obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o diff --git a/arch/arm/mach-omap2/off-state-counter-debug.c b/arch/arm/mach-omap2/off-state-counter-debug.c new file mode 100644 index 0000000..7db54b6 --- /dev/null +++ b/arch/arm/mach-omap2/off-state-counter-debug.c @@ -0,0 +1,50 @@ +#include <linux/debugfs.h> +#include <linux/seq_file.h> +#include <asm/arch/powerdomain.h> + + +int show_off_mode_count(struct powerdomain *pwrdm, void *user) +{ + struct seq_file *s = (struct seq_file *)user; + + if (strcmp(pwrdm->name, "emu_pwrdm") && + strcmp(pwrdm->name, "wkup_pwrdm")) + seq_printf(s, "%s : %d\n", pwrdm->name, pwrdm->offstate_count); + + return 0; +} + +int show_off_mode_counters(struct seq_file *s, void *unused) +{ + pwrdm_for_each(show_off_mode_count, s); + + return 0; +} + +static int off_mode_counter_open(struct inode *inode, struct file *file) +{ + return single_open(file, show_off_mode_counters, &inode->i_private); +} + +static const struct file_operations debug_fops = { + .open = off_mode_counter_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +static int __init off_mode_counter_debug(void) +{ + struct dentry *d; + + d = debugfs_create_dir("off_mode_counters", NULL); + if (IS_ERR(d)) + return PTR_ERR(d); + + debugfs_create_file("count", S_IRUGO, + d, NULL, &debug_fops); + + return 0; +} + +late_initcall(off_mode_counter_debug); -- 1.5.6.3 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/3] power off on state counter infrastructure 2008-07-24 13:00 ` [PATCH 1/3] Power off on state counter debugging Peter 'p2' De Schrijver @ 2008-07-24 13:00 ` Peter 'p2' De Schrijver 2008-07-24 13:00 ` [PATCH 3/3] Add hooks for counting off on power transitions Peter 'p2' De Schrijver 2008-09-04 16:54 ` [PATCH 2/3] power off on state counter infrastructure Paul Walmsley 2008-09-04 19:20 ` [PATCH 1/3] Power off on state counter debugging Kevin Hilman 1 sibling, 2 replies; 10+ messages in thread From: Peter 'p2' De Schrijver @ 2008-07-24 13:00 UTC (permalink / raw) To: linux-omap; +Cc: Peter 'p2' De Schrijver Signed-off-by: Peter 'p2' De Schrijver <peter.de-schrijver@nokia.com> --- arch/arm/mach-omap2/powerdomain.c | 48 +++++++++++++++++++++++++++++- include/asm-arm/arch-omap/powerdomain.h | 9 +++++- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c index 7615f9d..721f73c 100644 --- a/arch/arm/mach-omap2/powerdomain.c +++ b/arch/arm/mach-omap2/powerdomain.c @@ -102,6 +102,27 @@ static struct powerdomain *_pwrdm_deps_lookup(struct powerdomain *pwrdm, return pd->pwrdm; } +static int pwr_domain_save_state_cb(struct powerdomain *pwrdm, void *user) +{ + pwrdm_save_state(pwrdm); + + return 0; +} + +static int pwr_domain_count_off_mode_cb(struct powerdomain *pwrdm, void *user) +{ + int prev; + + prev = pwrdm_read_prev_pwrst(pwrdm); + + if (prev != PWRDM_POWER_OFF && pwrdm->state != prev) + pwrdm->offstate_count++; + + pwrdm->state = pwrdm_read_pwrst(pwrdm); + + return 0; +} + /* Public functions */ @@ -217,7 +238,7 @@ struct powerdomain *pwrdm_lookup(const char *name) * anything else to indicate failure; or -EINVAL if the function * pointer is null. */ -int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm)) +int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm, void *user), void *user) { struct powerdomain *temp_pwrdm; unsigned long flags; @@ -228,7 +249,7 @@ int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm)) read_lock_irqsave(&pwrdm_rwlock, flags); list_for_each_entry(temp_pwrdm, &pwrdm_list, node) { - ret = (*fn)(temp_pwrdm); + ret = (*fn)(temp_pwrdm, user); if (ret) break; } @@ -1110,4 +1131,27 @@ int pwrdm_wait_transition(struct powerdomain *pwrdm) return 0; } +void pwrdm_save_state(struct powerdomain *pwrdm) +{ + pwrdm->state = pwrdm_read_pwrst(pwrdm); +} + +void pwrdm_check_off_mode(struct powerdomain *pwrdm) +{ + int state; + + state = pwrdm_read_pwrst(pwrdm); + if (pwrdm->state == PWRDM_POWER_OFF && state == PWRDM_POWER_ON) + pwrdm->offstate_count++; +} + +void pwrdm_save_state_all(void) +{ + pwrdm_for_each(pwr_domain_save_state_cb, NULL); +} + +void pwrdm_count_off_mode(void) +{ + pwrdm_for_each(pwr_domain_count_off_mode_cb, NULL); +} diff --git a/include/asm-arm/arch-omap/powerdomain.h b/include/asm-arm/arch-omap/powerdomain.h index 1cd8942..19ad6fd 100644 --- a/include/asm-arm/arch-omap/powerdomain.h +++ b/include/asm-arm/arch-omap/powerdomain.h @@ -117,6 +117,8 @@ struct powerdomain { struct list_head node; + int state; + u32 offstate_count; }; @@ -126,7 +128,8 @@ int pwrdm_register(struct powerdomain *pwrdm); int pwrdm_unregister(struct powerdomain *pwrdm); struct powerdomain *pwrdm_lookup(const char *name); -int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm)); +int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm, void *user), + void *user); int pwrdm_add_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm); int pwrdm_del_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm); @@ -165,4 +168,8 @@ bool pwrdm_has_hdwr_sar(struct powerdomain *pwrdm); int pwrdm_wait_transition(struct powerdomain *pwrdm); +void pwrdm_save_state(struct powerdomain *pwrdm); +void pwrdm_check_off_mode(struct powerdomain *pwrdm); +void pwrdm_save_state_all(void); +void pwrdm_count_off_mode(void); #endif -- 1.5.6.3 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/3] Add hooks for counting off on power transitions 2008-07-24 13:00 ` [PATCH 2/3] power off on state counter infrastructure Peter 'p2' De Schrijver @ 2008-07-24 13:00 ` Peter 'p2' De Schrijver 2008-09-04 16:54 ` [PATCH 2/3] power off on state counter infrastructure Paul Walmsley 1 sibling, 0 replies; 10+ messages in thread From: Peter 'p2' De Schrijver @ 2008-07-24 13:00 UTC (permalink / raw) To: linux-omap; +Cc: Peter 'p2' De Schrijver Signed-off-by: Peter 'p2' De Schrijver <peter.de-schrijver@nokia.com> --- arch/arm/mach-omap2/clockdomain.c | 10 ++++++++++ arch/arm/mach-omap2/pm34xx.c | 6 +++++- 2 files changed, 15 insertions(+), 1 deletions(-) diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c index e975ca1..fac5778 100644 --- a/arch/arm/mach-omap2/clockdomain.c +++ b/arch/arm/mach-omap2/clockdomain.c @@ -571,6 +571,11 @@ int omap2_clkdm_clk_enable(struct clockdomain *clkdm, struct clk *clk) /*Hook to inform the OMAP PM layer that the pwrdm has become active */ omap_pm_pwrdm_active(clkdm->pwrdm); + if (clkdm != NULL && clkdm->pwrdm != NULL) { + pwrdm_wait_transition(clkdm->pwrdm); + pwrdm_check_off_mode(clkdm->pwrdm); + } + return 0; } @@ -625,6 +630,11 @@ int omap2_clkdm_clk_disable(struct clockdomain *clkdm, struct clk *clk) /*Hook to inform the OMAP PM layer that the pwrdm has become inactive */ omap_pm_pwrdm_inactive(clkdm->pwrdm); + if (clkdm != NULL && clkdm->pwrdm != NULL) { + pwrdm_wait_transition(clkdm->pwrdm); + pwrdm_save_state(clkdm->pwrdm); + } + return 0; } diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 8b6b09e..f70035a 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -269,6 +269,8 @@ void omap_sram_idle(void) return; } + pwrdm_save_state_all(); + /* NEON control */ if (pwrdm_read_pwrst(neon_pwrdm) == PWRDM_POWER_ON) set_pwrdm_state(neon_pwrdm, mpu_next_state); @@ -346,6 +348,8 @@ void omap_sram_idle(void) } omap2_gpio_resume_after_retention(); } + + pwrdm_count_off_mode(); } static int omap3_fclks_active(void) @@ -848,7 +852,7 @@ int __init omap3_pm_init(void) goto err2; } - ret = pwrdm_for_each(pwrdms_setup); + ret = pwrdm_for_each(pwrdms_setup, NULL); if (ret) { printk(KERN_ERR "Failed to setup powerdomains\n"); goto err2; -- 1.5.6.3 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] power off on state counter infrastructure 2008-07-24 13:00 ` [PATCH 2/3] power off on state counter infrastructure Peter 'p2' De Schrijver 2008-07-24 13:00 ` [PATCH 3/3] Add hooks for counting off on power transitions Peter 'p2' De Schrijver @ 2008-09-04 16:54 ` Paul Walmsley 1 sibling, 0 replies; 10+ messages in thread From: Paul Walmsley @ 2008-09-04 16:54 UTC (permalink / raw) To: Peter 'p2' De Schrijver; +Cc: linux-omap Hello Peter, a few minor comments: On Thu, 24 Jul 2008, Peter 'p2' De Schrijver wrote: > > Signed-off-by: Peter 'p2' De Schrijver <peter.de-schrijver@nokia.com> > --- > arch/arm/mach-omap2/powerdomain.c | 48 +++++++++++++++++++++++++++++- > include/asm-arm/arch-omap/powerdomain.h | 9 +++++- > 2 files changed, 54 insertions(+), 3 deletions(-) > > diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c > index 7615f9d..721f73c 100644 > --- a/arch/arm/mach-omap2/powerdomain.c > +++ b/arch/arm/mach-omap2/powerdomain.c > @@ -102,6 +102,27 @@ static struct powerdomain *_pwrdm_deps_lookup(struct powerdomain *pwrdm, > return pd->pwrdm; > } > > +static int pwr_domain_save_state_cb(struct powerdomain *pwrdm, void *user) For functions that operate on powerdomain power state, it is probably best to use the "pwrst" abbreviation, rather than "state", to clarify what type of state we are saving. Also, for these two static functions, let's prepend an underscore to the name to indicate an internal function, e.g., "_pwrdm_save_pwrst_cb" > +{ > + pwrdm_save_state(pwrdm); > + > + return 0; > +} > + > +static int pwr_domain_count_off_mode_cb(struct powerdomain *pwrdm, void *user) Same two notes as above. > +{ > + int prev; > + > + prev = pwrdm_read_prev_pwrst(pwrdm); > + > + if (prev != PWRDM_POWER_OFF && pwrdm->state != prev) > + pwrdm->offstate_count++; > + > + pwrdm->state = pwrdm_read_pwrst(pwrdm); > + > + return 0; > +} > + > > /* Public functions */ > > @@ -217,7 +238,7 @@ struct powerdomain *pwrdm_lookup(const char *name) > * anything else to indicate failure; or -EINVAL if the function > * pointer is null. > */ > -int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm)) > +int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm, void *user), void *user) > { > struct powerdomain *temp_pwrdm; > unsigned long flags; > @@ -228,7 +249,7 @@ int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm)) > > read_lock_irqsave(&pwrdm_rwlock, flags); > list_for_each_entry(temp_pwrdm, &pwrdm_list, node) { > - ret = (*fn)(temp_pwrdm); > + ret = (*fn)(temp_pwrdm, user); > if (ret) > break; > } > @@ -1110,4 +1131,27 @@ int pwrdm_wait_transition(struct powerdomain *pwrdm) > return 0; > } > > +void pwrdm_save_state(struct powerdomain *pwrdm) This should be "pwrdm_save_pwrst" > +{ > + pwrdm->state = pwrdm_read_pwrst(pwrdm); > +} > + > +void pwrdm_check_off_mode(struct powerdomain *pwrdm) > +{ > + int state; > + > + state = pwrdm_read_pwrst(pwrdm); > + if (pwrdm->state == PWRDM_POWER_OFF && state == PWRDM_POWER_ON) > + pwrdm->offstate_count++; > +} > + > +void pwrdm_save_state_all(void) This should be "pwrdm_save_pwrst_all" > +{ > + pwrdm_for_each(pwr_domain_save_state_cb, NULL); > +} > + > +void pwrdm_count_off_mode(void) > +{ > + pwrdm_for_each(pwr_domain_count_off_mode_cb, NULL); > +} > > diff --git a/include/asm-arm/arch-omap/powerdomain.h b/include/asm-arm/arch-omap/powerdomain.h > index 1cd8942..19ad6fd 100644 > --- a/include/asm-arm/arch-omap/powerdomain.h > +++ b/include/asm-arm/arch-omap/powerdomain.h > @@ -117,6 +117,8 @@ struct powerdomain { > > struct list_head node; > > + int state; > + u32 offstate_count; > }; > > > @@ -126,7 +128,8 @@ int pwrdm_register(struct powerdomain *pwrdm); > int pwrdm_unregister(struct powerdomain *pwrdm); > struct powerdomain *pwrdm_lookup(const char *name); > > -int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm)); > +int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm, void *user), > + void *user); > > int pwrdm_add_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm); > int pwrdm_del_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm); > @@ -165,4 +168,8 @@ bool pwrdm_has_hdwr_sar(struct powerdomain *pwrdm); > > int pwrdm_wait_transition(struct powerdomain *pwrdm); > > +void pwrdm_save_state(struct powerdomain *pwrdm); > +void pwrdm_check_off_mode(struct powerdomain *pwrdm); > +void pwrdm_save_state_all(void); > +void pwrdm_count_off_mode(void); > #endif The rest of these three patches looks fine. - Paul ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] Power off on state counter debugging 2008-07-24 13:00 ` [PATCH 1/3] Power off on state counter debugging Peter 'p2' De Schrijver 2008-07-24 13:00 ` [PATCH 2/3] power off on state counter infrastructure Peter 'p2' De Schrijver @ 2008-09-04 19:20 ` Kevin Hilman 1 sibling, 0 replies; 10+ messages in thread From: Kevin Hilman @ 2008-09-04 19:20 UTC (permalink / raw) To: Peter 'p2' De Schrijver; +Cc: linux-omap Peter 'p2' De Schrijver wrote: > Signed-off-by: Peter 'p2' De Schrijver <peter.de-schrijver@nokia.com> > --- > arch/arm/mach-omap2/Makefile | 2 +- > arch/arm/mach-omap2/off-state-counter-debug.c | 50 +++++++++++++++++++++++++ > 2 files changed, 51 insertions(+), 1 deletions(-) > create mode 100644 arch/arm/mach-omap2/off-state-counter-debug.c How about calling this powerdomain-debug.c and conditionally compiling based on CONFIG_PM_DEBUG. There will probably be some other things besides off-mode counters to add here down the road. Kevin > diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile > index 0d8507c..a48f832 100644 > --- a/arch/arm/mach-omap2/Makefile > +++ b/arch/arm/mach-omap2/Makefile > @@ -5,7 +5,7 @@ > # Common support > obj-y := irq.o id.o io.o memory.o control.o prcm.o clock.o mux.o \ > devices.o serial.o gpmc.o timer-gp.o powerdomain.o \ > - clockdomain.o > + clockdomain.o off-state-counter-debug.o > > obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o > > diff --git a/arch/arm/mach-omap2/off-state-counter-debug.c b/arch/arm/mach-omap2/off-state-counter-debug.c > new file mode 100644 > index 0000000..7db54b6 > --- /dev/null > +++ b/arch/arm/mach-omap2/off-state-counter-debug.c > @@ -0,0 +1,50 @@ > +#include <linux/debugfs.h> > +#include <linux/seq_file.h> > +#include <asm/arch/powerdomain.h> > + > + > +int show_off_mode_count(struct powerdomain *pwrdm, void *user) > +{ > + struct seq_file *s = (struct seq_file *)user; > + > + if (strcmp(pwrdm->name, "emu_pwrdm") && > + strcmp(pwrdm->name, "wkup_pwrdm")) > + seq_printf(s, "%s : %d\n", pwrdm->name, pwrdm->offstate_count); > + > + return 0; > +} > + > +int show_off_mode_counters(struct seq_file *s, void *unused) > +{ > + pwrdm_for_each(show_off_mode_count, s); > + > + return 0; > +} > + > +static int off_mode_counter_open(struct inode *inode, struct file *file) > +{ > + return single_open(file, show_off_mode_counters, &inode->i_private); > +} > + > +static const struct file_operations debug_fops = { > + .open = off_mode_counter_open, > + .read = seq_read, > + .llseek = seq_lseek, > + .release = single_release, > +}; > + > +static int __init off_mode_counter_debug(void) > +{ > + struct dentry *d; > + > + d = debugfs_create_dir("off_mode_counters", NULL); > + if (IS_ERR(d)) > + return PTR_ERR(d); > + > + debugfs_create_file("count", S_IRUGO, > + d, NULL, &debug_fops); > + > + return 0; > +} > + > +late_initcall(off_mode_counter_debug); ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/3] Implement powerdomain off on state counters 2008-07-24 13:00 [PATCH 0/3] Implement powerdomain off on state counters Peter 'p2' De Schrijver 2008-07-24 13:00 ` [PATCH 1/3] Power off on state counter debugging Peter 'p2' De Schrijver @ 2008-07-24 13:04 ` Peter 'p2' De Schrijver 2008-08-05 14:20 ` Tony Lindgren 2 siblings, 0 replies; 10+ messages in thread From: Peter 'p2' De Schrijver @ 2008-07-24 13:04 UTC (permalink / raw) To: linux-omap On Thu, Jul 24, 2008 at 04:00:31PM +0300, Peter 'p2' De Schrijver wrote: > This patchset implement counters to count the number of off to on state transitions in a powerdomain. These counters will be made available to > drivers in a later patchset to allow them to make a better informed decision wether to restore the hardware registers or not. Thanks to Tero Kristo for providing the basis of this patch in the form of the PM Debug counters. -- goa is a state of mind ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/3] Implement powerdomain off on state counters 2008-07-24 13:00 [PATCH 0/3] Implement powerdomain off on state counters Peter 'p2' De Schrijver 2008-07-24 13:00 ` [PATCH 1/3] Power off on state counter debugging Peter 'p2' De Schrijver 2008-07-24 13:04 ` [PATCH 0/3] Implement powerdomain off on state counters Peter 'p2' De Schrijver @ 2008-08-05 14:20 ` Tony Lindgren 2008-08-05 14:28 ` Igor Stoppa 2 siblings, 1 reply; 10+ messages in thread From: Tony Lindgren @ 2008-08-05 14:20 UTC (permalink / raw) To: Peter 'p2' De Schrijver; +Cc: linux-omap * Peter 'p2' De Schrijver <peter.de-schrijver@nokia.com> [080724 16:00]: > This patchset implement counters to count the number of off to on state transitions in a powerdomain. These counters will be made available to > drivers in a later patchset to allow them to make a better informed decision wether to restore the hardware registers or not. > > Peter 'p2' De Schrijver (3): > Power off on state counter debugging > Power off on state counter infrastructure > Add hooks for counting off on power transitions We should merge these into Paul's powerdomain patches against mainline tree and post them again for more comments to LKML, linux-arm-kernel and linux-pm. Tony > arch/arm/mach-omap2/Makefile | 2 +- > arch/arm/mach-omap2/clockdomain.c | 10 +++++ > arch/arm/mach-omap2/off-state-counter-debug.c | 50 +++++++++++++++++++++++++ > arch/arm/mach-omap2/pm34xx.c | 6 ++- > arch/arm/mach-omap2/powerdomain.c | 48 +++++++++++++++++++++++- > include/asm-arm/arch-omap/powerdomain.h | 9 ++++- > 6 files changed, 120 insertions(+), 5 deletions(-) > create mode 100644 arch/arm/mach-omap2/off-state-counter-debug.c > > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/3] Implement powerdomain off on state counters 2008-08-05 14:20 ` Tony Lindgren @ 2008-08-05 14:28 ` Igor Stoppa 2008-08-05 15:30 ` Tony Lindgren 0 siblings, 1 reply; 10+ messages in thread From: Igor Stoppa @ 2008-08-05 14:28 UTC (permalink / raw) To: ext Tony Lindgren; +Cc: Peter 'p2' De Schrijver, linux-omap Hi Tony, On Tue, 2008-08-05 at 17:20 +0300, ext Tony Lindgren wrote: > * Peter 'p2' De Schrijver <peter.de-schrijver@nokia.com> [080724 16:00]: > > This patchset implement counters to count the number of off to on state transitions in a powerdomain. These counters will be made available to > > drivers in a later patchset to allow them to make a better informed decision wether to restore the hardware registers or not. > > > > Peter 'p2' De Schrijver (3): > > Power off on state counter debugging > > Power off on state counter infrastructure > > Add hooks for counting off on power transitions > > We should merge these into Paul's powerdomain patches against mainline > tree and post them again for more comments to LKML, linux-arm-kernel > and linux-pm. Dave Brownell commented already that this stuff, albeit apparently generic enough to be interesting to other archs, would probably be better off being merged in the omap tree, since in the end other SOCs tend to be far simpler than OMAP. Considering that we are not 100% sure about the usefulness of certain sw features - example: the granularity for the bandwidth requirements might be too fine - I'd rather avoid bringing in whishlists from other architectures, unless they are proven to be really needed. And AFAIK so far nobody has come forward with such claim. Can't we first get it working in a reliable way on OMAP? Whatever survives this process has probably better chances to result interesting to other people. -- Cheers, Igor --- Igor Stoppa Maemo Software - Nokia Devices R&D - Helsinki ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/3] Implement powerdomain off on state counters 2008-08-05 14:28 ` Igor Stoppa @ 2008-08-05 15:30 ` Tony Lindgren 0 siblings, 0 replies; 10+ messages in thread From: Tony Lindgren @ 2008-08-05 15:30 UTC (permalink / raw) To: Igor Stoppa; +Cc: Peter 'p2' De Schrijver, linux-omap * Igor Stoppa <igor.stoppa@nokia.com> [080805 17:38]: > Hi Tony, > On Tue, 2008-08-05 at 17:20 +0300, ext Tony Lindgren wrote: > > * Peter 'p2' De Schrijver <peter.de-schrijver@nokia.com> [080724 16:00]: > > > This patchset implement counters to count the number of off to on state transitions in a powerdomain. These counters will be made available to > > > drivers in a later patchset to allow them to make a better informed decision wether to restore the hardware registers or not. > > > > > > Peter 'p2' De Schrijver (3): > > > Power off on state counter debugging > > > Power off on state counter infrastructure > > > Add hooks for counting off on power transitions > > > > We should merge these into Paul's powerdomain patches against mainline > > tree and post them again for more comments to LKML, linux-arm-kernel > > and linux-pm. > > Dave Brownell commented already that this stuff, albeit apparently > generic enough to be interesting to other archs, would probably be > better off being merged in the omap tree, since in the end other SOCs > tend to be far simpler than OMAP. Yeah. > Considering that we are not 100% sure about the usefulness of certain sw > features - example: the granularity for the bandwidth requirements might > be too fine - I'd rather avoid bringing in whishlists from other > architectures, unless they are proven to be really needed. > > And AFAIK so far nobody has come forward with such claim. > > Can't we first get it working in a reliable way on OMAP? We should first get ack (even if it means no comments) from other mailing lists before we go ahead implementing this as it affects the drivers too. > Whatever survives this process has probably better chances to result > interesting to other people. Yeh, but we need to keep them informed throughout the process. Many of the people that could be commenting the code are not reading linux-omap list. Also, we want to get these patches integrated to mainline tree, and Russell wants to have more review before integrating. Regards, Tony ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2008-09-04 19:20 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-07-24 13:00 [PATCH 0/3] Implement powerdomain off on state counters Peter 'p2' De Schrijver 2008-07-24 13:00 ` [PATCH 1/3] Power off on state counter debugging Peter 'p2' De Schrijver 2008-07-24 13:00 ` [PATCH 2/3] power off on state counter infrastructure Peter 'p2' De Schrijver 2008-07-24 13:00 ` [PATCH 3/3] Add hooks for counting off on power transitions Peter 'p2' De Schrijver 2008-09-04 16:54 ` [PATCH 2/3] power off on state counter infrastructure Paul Walmsley 2008-09-04 19:20 ` [PATCH 1/3] Power off on state counter debugging Kevin Hilman 2008-07-24 13:04 ` [PATCH 0/3] Implement powerdomain off on state counters Peter 'p2' De Schrijver 2008-08-05 14:20 ` Tony Lindgren 2008-08-05 14:28 ` Igor Stoppa 2008-08-05 15:30 ` Tony Lindgren
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox