From mboxrd@z Thu Jan 1 00:00:00 1970 From: santosh.shilimkar@ti.com (Santosh Shilimkar) Date: Wed, 23 Feb 2011 14:23:03 +0530 Subject: [PATCH 8/8] OMAP2+: clockevent: late-init GPTIMER clockevent hwmodright before timer init In-Reply-To: <20110223071153.5874.58923.stgit@twilight.localdomain> References: <20110223070455.5874.51326.stgit@twilight.localdomain> <20110223071153.5874.58923.stgit@twilight.localdomain> Message-ID: <581270b49665fcf8227a96065dbbc584@mail.gmail.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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 > Cc: Beno?t Cousson > Cc: Tony Lindgren > Cc: Kevin Hilman > Cc: Santosh Shilimkar > --- > 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 > #include > #include > +#include > > #include "timer-gp.h" > +#include > > -#include > > /* 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(); >