Benoit, > -----Original Message----- > From: linux-omap-owner@xxxxxxxxxxxxxxx [mailto:linux-omap- > owner@xxxxxxxxxxxxxxx] On Behalf Of DebBarma, Tarun Kanti > Sent: Monday, October 11, 2010 2:58 PM > To: Cousson, Benoit > Cc: linux-omap@xxxxxxxxxxxxxxx; Basak, Partha; Paul Walmsley; Kevin > Hilman; Tony Lindgren > Subject: RE: [PATCHv3 17/17] dmtimer: remove OCP config code from plat- > omap > > Benoit, > > > -----Original Message----- > > From: Cousson, Benoit > > Sent: Monday, October 04, 2010 7:57 PM > > To: DebBarma, Tarun Kanti > > Cc: linux-omap@xxxxxxxxxxxxxxx; Basak, Partha; Paul Walmsley; Kevin > > Hilman; Tony Lindgren > > Subject: Re: [PATCHv3 17/17] dmtimer: remove OCP config code from plat- > > omap > > > > On 9/21/2010 10:56 AM, DebBarma, Tarun Kanti wrote: > > > This patch removes the ocp config code from omap-plat > > > because they are supposed to be taken care of by the > > > hwmod framework. Specifically, following changes are > > > incorporated: > > > (1) setting of smart-idle and wakeup-enable is already > > > taken care in existing code and so they are simply removed > > > from plat-omap > > > (2) clockactivity configuration is not present in the present > > > hwmod database. Therefore this filed is initialized to '1' in > > > > Typo. > Will take care! > > > > > > respective database. > > > > Could you explain why, the default setting is not working for the > timers? > Ok, I just moved the existing implementation from plat-omap to hwmod > database. I have not tested without this change. > > > > > > > > > Signed-off-by: Tarun Kanti DebBarma<tarun.kanti@xxxxxx> > > > Signed-off-by: Partha Basak<p-basak2@xxxxxx> > > > Cc: Cousson, Benoit<b-cousson@xxxxxx> > > > Cc: Paul Walmsley<paul@xxxxxxxxx> > > > Cc: Kevin Hilman<khilman@xxxxxxxxxxxxxxxxxxx> > > > Cc: Tony Lindgren<tony@xxxxxxxxxxx> > > > --- > > > arch/arm/mach-omap2/omap_hwmod_2420_data.c | 1 + > > > arch/arm/mach-omap2/omap_hwmod_2430_data.c | 1 + > > > arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 1 + > > > arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 1 + > > > arch/arm/plat-omap/dmtimer.c | 11 ----------- > > > 5 files changed, 4 insertions(+), 11 deletions(-) > > > > > > diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c > b/arch/arm/mach- > > omap2/omap_hwmod_2420_data.c > > > index fc761a5..25111bf 100644 > > > --- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c > > > +++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c > > > @@ -168,6 +168,7 @@ static struct omap_hwmod_class_sysconfig > > omap2420_timer_sysc = { > > > SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET | > > > SYSC_HAS_AUTOIDLE), > > > .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), > > > + .clockact = 1, /* preserve fclk on idle */ > > > > In theory, this field is useless unless you add a flag: > > SYSC_HAS_CLOCKACTIVITY. > > > > So how is it working in your case? > I guess my testing with power was not done properly. I will check and > verify. > > > > > > > .sysc_fields =&omap_hwmod_sysc_type1, > > > }; > > > > > > diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c > b/arch/arm/mach- > > omap2/omap_hwmod_2430_data.c > > > index 2ac463f..93d5c3d 100644 > > > --- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c > > > +++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c > > > @@ -174,6 +174,7 @@ static struct omap_hwmod_class_sysconfig > > omap2430_timer_sysc = { > > > SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET | > > > SYSC_HAS_AUTOIDLE), > > > .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), > > > + .clockact = 1, /* preserve fclk on idle */ > > > .sysc_fields =&omap_hwmod_sysc_type1, > > > }; > > > > > > diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c > b/arch/arm/mach- > > omap2/omap_hwmod_3xxx_data.c > > > index 1ce40e0..c64c95b 100644 > > > --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c > > > +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c > > > @@ -147,6 +147,7 @@ static struct omap_hwmod_class_sysconfig > > omap3xxx_timer_1ms_sysc = { > > > SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET | > > > SYSC_HAS_EMUFREE | SYSC_HAS_AUTOIDLE), > > > .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), > > > + .clockact = 1, /* preserve fclk on idle */ > > > .sysc_fields =&omap_hwmod_sysc_type1, > > > }; > > > > > > diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c > b/arch/arm/mach- > > omap2/omap_hwmod_44xx_data.c > > > index 9edc518..a816d30 100644 > > > --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c > > > +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c > > > @@ -538,6 +538,7 @@ static struct omap_hwmod_class_sysconfig > > omap44xx_timer_1ms_sysc = { > > > SYSC_HAS_EMUFREE | SYSC_HAS_AUTOIDLE | > > > SYSS_MISSING), > > > .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), > > > + .clockact = 1, /* preserve fclk on idle */ > > > .sysc_fields =&omap_hwmod_sysc_type1, > > > }; > > > > > > diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat- > omap/dmtimer.c > > > index 7d57605..6211501 100644 > > > --- a/arch/arm/plat-omap/dmtimer.c > > > +++ b/arch/arm/plat-omap/dmtimer.c > > > @@ -157,17 +157,6 @@ static void omap_dm_timer_reset(struct > > omap_dm_timer *timer) > > > } > > > omap_dm_timer_set_source(timer, OMAP_TIMER_SRC_32_KHZ); > > > > > > - l = omap_dm_timer_read_reg(timer, OMAP_TIMER_OCP_CFG_REG); > > > - l |= 0x02<< 3; /* Set to smart-idle mode */ > > > - l |= 0x2<< 8; /* Set clock activity to perserve f-clock on > idle */ > > > > It used to be 0x2 and now you put 1: > > .clockact = 1, /* preserve fclk on idle */ > Oops... it's a mistake. > > > > > I do not understand how that patch can work??? > As I said, I am sure I did mess-up during power test. > > In summary, I will make following updates: > .clockact = 0x2 > SYSC_HAS_CLOCKACTIVITY flag should be included. After going through the code I realized that this flag is already there. I am not sure where you observed this flag missing? -tarun > > > > > > - > > > - /* > > > - * Enable wake-up on OMAP2 CPUs. > > > - */ > > > - if (cpu_class_is_omap2()) > > > - l |= 1<< 2; > > > - omap_dm_timer_write_reg(timer, OMAP_TIMER_OCP_CFG_REG, l); > > > - > > > /* Match hardware reset default of posted mode */ > > > omap_dm_timer_write_reg(timer, OMAP_TIMER_IF_CTRL_REG, > > > OMAP_TIMER_CTRL_POSTED); > > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html