From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Herring Subject: Re: [RFC 2/8] ARM: twd: register clock event for 1 core SMP Date: Mon, 18 Feb 2013 07:47:29 -0600 Message-ID: <512230F1.8020208@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: devicetree-discuss-bounces+gldd-devicetree-discuss=m.gmane.org-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org Sender: "devicetree-discuss" To: Afzal Mohammed Cc: Russell King , linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Will Deacon , devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org, Nicolas Pitre , Sekhar Nori , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Rob Herring , Santosh Shilimkar , Syed Mohammed Khasim , linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org List-Id: devicetree@vger.kernel.org On 02/18/2013 12:30 AM, Afzal Mohammed wrote: > Register percpu local timer for scheduler tick in the case of one core > SMP configuration. In other cases - secondary cpu's as well as boot > cpu's having more than one core, this is being registered as per > existing boot flow, with a difference that they happens after delay > calibration. Registering the clock for tick in case of one core should > be done before Kernel calibrates delay (this is required to boot, > unless local timer is the only one registered for tick). Registering > twd local timer at init_time (which platforms are doing now) helps > achieve that with the proposed change. > > This helps in an almost booting Kernel (minimal) by only relying on > ARM parts for an A9 one core SMP. > > Signed-off-by: Afzal Mohammed > --- > arch/arm/kernel/smp_twd.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/arm/kernel/smp_twd.c b/arch/arm/kernel/smp_twd.c > index 616268c..118f4f2 100644 > --- a/arch/arm/kernel/smp_twd.c > +++ b/arch/arm/kernel/smp_twd.c > @@ -335,6 +335,9 @@ static int __init twd_local_timer_common_register(struct device_node *np) > > twd_get_clock(np); > > + if (num_possible_cpus() == 1) > + twd_timer_setup(evt); > + Shouldn't this be fixed in the core code, so the same issue is fixed for all timers? Rob > return 0; > > out_irq: >