Re: [PATCH] clocksource: tegra: wrap arch/arm-specific sections in CONFIG_ARM

From: Thierry Reding
Date: Wed Dec 10 2014 - 06:15:26 EST


On Tue, Dec 09, 2014 at 10:07:18PM +0000, Paul Walmsley wrote:
>
> Like several of the other files in drivers/clocksource,
> tegra20_timer.c contains code that can only compile when CONFIG_ARM is
> enabled. This causes obvious problems when trying to compile this
> code for NVIDIA ARM64-based SoCs, such as Tegra132. The same timer IP
> blocks exist, so it seems appropriate to provide support for them.
>
> So until we figure out a better way to partition this code, wrap the
> delay_timer and persistent_clock support code with preprocessor tests
> for CONFIG_ARM. (The delay_timer code should not be needed at all on
> ARM64 due to the presence of the ARMv8 architected timer. The
> persistent_clock support code could become important once power
> management modes are implemented that turn off the CPU complex.)
>
> Signed-off-by: Paul Walmsley <paul@xxxxxxxxx>
> Signed-off-by: Paul Walmsley <pwalmsley@xxxxxxxxxx>
> Cc: Allen Martin <amartin@xxxxxxxxxx>
> Cc: Stephen Warren <swarren@xxxxxxxxxx>
> Cc: Thierry Reding <treding@xxxxxxxxxx>
> Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Alexandre Courbot <gnurou@xxxxxxxxx>
> ---
> Applies against next-20141209.
> Intended for v3.20.
> Boot-tested on Tegra124 Jetson TK1 on next-20141209.
> Also boot-tested on Tegra132 Norrin FFD on next-20141209 + extra,
> unrelated patches.
>
> drivers/clocksource/tegra20_timer.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)

You might want to read the following thread:

https://lkml.org/lkml/2014/11/7/605

I haven't gotten around to look at this in detail, but it seems like we
may not need to register the RTC early here at all. If that's really the
case we can just get rid of this hackery and do everything within the
RTC driver rather than duplicate some of that code here.

On 32-bit ARM, Tegra114 and Tegra124 also support the architected timer,
so the only remaining issue would be for Tegra20 and Tegra30 hardware.
But I also seem to remember that on most boards the Tegra RTC can't be
used properly because it doesn't have a battery. So while it may still
work while the board is powered it is not very useful as RTC. Or for
timekeeping across suspend/resume for that matter. The majority of
boards seem to have a PMIC with an integrated RTC and will use that
instead.

Otherwise this looks good to me to get things going on 64-bit ARM while
we iron out the other issues. Can I assume that you plan on sending in
patches that enable 64-bit ARM Tegra in the 3.20 timeframe? If so it
might be best to take this patch through the Tegra tree, provided that
Daniel and Thomas have no objections, to make sure we don't have
intermittent build breakage depending on the order in which the trees
get pulled into linux-next and Linus' tree. Even more so because there
are a couple of other, similar patches which makes a stable branches
oriented approach to resolving these dependencies somewhat impractical.

Thierry

Attachment: pgpEbJJVDh8hi.pgp
Description: PGP signature