Subject: [PATCH V5] ARM: OMAP5/DRA7: realtime_counter: Configure CNTFRQ register

From: [email-masked] (Tony Lindgren)
Date: Fri, 11 Oct 2013 17:34:33 -0700

* Tony Lindgren <[email-masked]> [131010 10:23]:
> * Santosh Shilimkar <[email-masked]> [131010 06:20]:
> > On Thursday 10 October 2013 03:43 AM, Sricharan R wrote:
> > > From: R Sricharan <[email-masked]>
> > > 
> > > The realtime counter called master counter, produces the count
> > > used by the private timer peripherals in the MPU_CLUSTER. The
> > > CNTFRQ per cpu register is used to denote the frequency of the counter.
> > > Currently the frequency value is passed from the
> > > DT file, but this is not scalable when we have other non-DT guest
> > > OS. This register must be set to the right value by the
> > > secure rom code. Setting this register helps in propagating the right
> > > frequency value across OSes.
> > > 
> > > More discussions and the reason for adding this in a non-DT
> > > way can be seen from below.
> > > http://www.mail-archive.com/linux-omap at vger.kernel.org/msg93832.html
> > > 
> > > So configuring this secure register for all the cpus here.
> > > 
> > > Cc: Santosh Shilimkar <[email-masked]>
> > > Cc: Nishanth Menon <[email-masked]>
> > > Cc: Rajendra Nayak <[email-masked]>
> > > Cc: Marc Zyngier <[email-masked]>
> > > Cc: Mark Rutland <[email-masked]>
> > > Cc: Tony Lindgren <[email-masked]>
> > > Tested-by: Nishanth Menon <[email-masked]>
> > > Acked-by: Santosh Shilimkar <[email-masked]>
> > > Signed-off-by: Sricharan R <[email-masked]>
> > > ---
> > >  [V5] Removed the use of extern variable in omap-smp.c
> > >       as per suggestion from Santosh Shilimkar <[email-masked]>
> > > 
> > Thanks for the updates Sricharan. Looks fine now.
> > 
> > Tony, Can you apply this version if you are fine with it.
> 
> Yes thanks looks good to me now. Applying into omap-for-v3.13/soc.

Grr, had to apply the following fix on top of this for some configs.

Tony

8< ---------------------------

From: Tony Lindgren <[email-masked]>
Date: Fri, 11 Oct 2013 17:28:04 -0700
Subject: [PATCH] ARM: OMAP2+: Fix build error for realtime counter init if not enabled

Otherwise we can get an error with some configs:

arch/arm/mach-omap2/timer.c:73: undefined reference to `omap_smc1'

Signed-off-by: Tony Lindgren <[email-masked]>

--- a/arch/arm/mach-omap2/timer.c
+++ b/arch/arm/mach-omap2/timer.c
@@ -66,12 +66,15 @@
 
 static struct omap_dm_timer clkev;
 static struct clock_event_device clockevent_gpt;
+
+#ifdef CONFIG_SOC_HAS_REALTIME_COUNTER
 static unsigned long arch_timer_freq;
 
 void set_cntfreq(void)
 {
 	omap_smc1(OMAP5_DRA7_MON_SET_CNTFRQ_INDEX, arch_timer_freq);
 }
+#endif
 
 static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id)
 {