[PATCH 8/8] OMAP2+: clockevent: late-init GPTIMER clockevent hwmodright before timer init

DebBarma, Tarun Kanti tarun.kanti at ti.com
Thu Feb 24 03:29:01 EST 2011


> -----Original Message-----
> From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
> owner at vger.kernel.org] On Behalf Of Paul Walmsley
> Sent: Thursday, February 24, 2011 1:45 PM
> To: Shilimkar, Santosh
> Cc: linux-omap at vger.kernel.org; linux-arm-kernel at lists.infradead.org; Tony
> Lindgren; Hilman, Kevin; Cousson, Benoit
> Subject: RE: [PATCH 8/8] OMAP2+: clockevent: late-init GPTIMER clockevent
> hwmodright before timer init
> 
> Hello Santosh,
> 
> On Thu, 24 Feb 2011, Paul Walmsley wrote:
> 
> > I propose the following change instead - please let me know what you
> > think.
> 
> Oops - the patch I sent you was not completely refreshed in the local
> tree.  Here is the correct one.
I have tested on OMAP3 and works fine.
On OMAP2, I guess there is different issue for which it does not work.
--
Tarun
> 
> From: Paul Walmsley <paul at pwsan.com>
> Date: Wed, 23 Feb 2011 00:14:08 -0700
> Subject: [PATCH] OMAP2+: clockevent: late-init GPTIMER clockevent hwmod
> right before timer init
> 
> Late-initialize the GPTIMER hwmod used for the clockevent source
> immediately
> before it is used.  This avoids the need to late-initialize all of the
> hwmods
> until the boot process is further along.  (In general, we want to defer
> as much as possible until late in the boot process.)
> 
> This second version fixes a bug pointed out by Santosh Shilimkar
> <santosh.shilimkar at ti.com>, that would cause the kernel to use an
> incorrect timer hwmod name if the selected GPTIMER was not 1 or 12 -
> thanks Santosh.  Also, Tarun Kanti DebBarma <tarun.kanti at ti.com>
> pointed out that the original patch did not apply cleanly; this has
> now been fixed.
> 
> Signed-off-by: Paul Walmsley <paul at pwsan.com>
> Cc: Benoît Cousson <b-cousson at ti.com>
> Cc: Tony Lindgren <tony at atomide.com>
> Cc: Kevin Hilman <khilman at ti.com>
> Cc: Santosh Shilimkar <santosh.shilimkar at ti.com>
> Cc: Tarun Kanti DebBarma <tarun.kanti at ti.com>
> ---
>  arch/arm/mach-omap2/timer-gp.c |    7 ++++++-
>  1 files changed, 6 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-
> gp.c
> index 7b7c268..b289d53 100644
> --- a/arch/arm/mach-omap2/timer-gp.c
> +++ b/arch/arm/mach-omap2/timer-gp.c
> @@ -39,10 +39,11 @@
>  #include <asm/mach/time.h>
>  #include <plat/dmtimer.h>
>  #include <asm/localtimer.h>
> +#include <plat/common.h>
> +#include <plat/omap_hwmod.h>
> 
>  #include "timer-gp.h"
> 
> -#include <plat/common.h>
> 
>  /* MAX_GPTIMER_ID: number of GPTIMERs on the chip */
>  #define MAX_GPTIMER_ID		12
> @@ -132,9 +133,13 @@ static void __init omap2_gp_clockevent_init(void)
>  {
>  	u32 tick_rate;
>  	int src;
> +	char clockevent_hwmod_name[8]; /* 8 = sizeof("timerXX0") */
> 
>  	inited = 1;
> 
> +	sprintf(clockevent_hwmod_name, "timer%d", gptimer_id);
> +	omap_hwmod_late_init_one(clockevent_hwmod_name);
> +
>  	gptimer = omap_dm_timer_request_specific(gptimer_id);
>  	BUG_ON(gptimer == NULL);
>  	gptimer_wakeup = gptimer;
> --
> 1.7.2.3



More information about the linux-arm-kernel mailing list