[PATCH 8/8] OMAP2+: clockevent: late-init GPTIMER clockevent hwmodright before timer init
Santosh Shilimkar
santosh.shilimkar at ti.com
Wed Feb 23 03:53:03 EST 2011
Paul,
> -----Original Message-----
> From: Paul Walmsley [mailto:paul at pwsan.com]
> Sent: Wednesday, February 23, 2011 12:42 PM
> To: linux-omap at vger.kernel.org; linux-arm-kernel at lists.infradead.org
> Cc: Tony Lindgren; Kevin Hilman; Santosh Shilimkar; Benoīt Cousson
> Subject: [PATCH 8/8] OMAP2+: clockevent: late-init GPTIMER
> clockevent hwmodright 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.)
>
> 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>
> ---
> arch/arm/mach-omap2/timer-gp.c | 8 +++++++-
> 1 files changed, 7 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-
> omap2/timer-gp.c
> index 0fc550e..a4e51a2 100644
> --- a/arch/arm/mach-omap2/timer-gp.c
> +++ b/arch/arm/mach-omap2/timer-gp.c
> @@ -40,10 +40,11 @@
> #include <plat/dmtimer.h>
> #include <asm/localtimer.h>
> #include <asm/sched_clock.h>
> +#include <plat/common.h>
>
> #include "timer-gp.h"
> +#include <plat/omap_hwmod.h>
>
> -#include <plat/common.h>
>
> /* MAX_GPTIMER_ID: number of GPTIMERs on the chip */
> #define MAX_GPTIMER_ID 12
> @@ -133,9 +134,13 @@ static void __init
> omap2_gp_clockevent_init(void)
> {
> u32 tick_rate;
> int src;
> + const char *clockevent_hwmod_name;
>
> inited = 1;
>
> + clockevent_hwmod_name = (gptimer_id == 12) ? "timer12" :
> "timer1";
> + omap_hwmod_late_init_one(clockevent_hwmod_name);
> +
Do we need above hard-coding ? This takes away flexibility of
choosing system timer from board files, right ?
Am I missing something here?
> gptimer = omap_dm_timer_request_specific(gptimer_id);
> BUG_ON(gptimer == NULL);
> gptimer_wakeup = gptimer;
> @@ -250,6 +255,7 @@ static void __init omap2_gp_timer_init(void)
> BUG_ON(!twd_base);
> }
> #endif
> +
> omap_dm_timer_init();
>
> omap2_gp_clockevent_init();
>
More information about the linux-arm-kernel
mailing list