All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Lezcano <daniel.lezcano-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: Thierry Reding <thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Paul Walmsley <paul-DWxLp4Yu+b8AvxtiuMwx3w@public.gmane.org>,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Allen Martin <amartin-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	Alexandre Courbot
	<gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	pwalmsley-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org
Subject: Re: [PATCH] clocksource: tegra: wrap arch/arm-specific sections in CONFIG_ARM
Date: Fri, 09 Jan 2015 14:24:24 +0100	[thread overview]
Message-ID: <54AFD688.5000304@linaro.org> (raw)
In-Reply-To: <20150109122120.GJ16465@ulmo>

On 01/09/2015 01:21 PM, Thierry Reding wrote:
> On Fri, Jan 09, 2015 at 09:31:08AM +0100, Daniel Lezcano wrote:
>> On 01/09/2015 03:09 AM, Paul Walmsley wrote:
>>> Hello Daniel
>>>
>>> On Thu, 8 Jan 2015, Daniel Lezcano wrote:
>>>
>>>> On 12/09/2014 11:07 PM, 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.)
>>>>
>>>> IIUC, the cpuidle driver is not yet ready, right ?
>>>>
>>>> If it is the case, this driver is not needed yet, no ?
>>>
>>> The point of the patch is to allow the hardware drivers selected by
>>> CONFIG_ARCH_TEGRA to build for an arm64 kernel, just as they build for
>>> 32-bit ARM.
>>>
>>> There's nothing CPUIdle-specific about the patch - that is, this timer can
>>> be selected as a clockevent and clocksource provider without the use of
>>> CPUIdle - although low-power PM idle is likely to be a primary use-case.
>>
>> What I meant is this timer is not needed for the moment.
>>
>>>> Perhaps you can rework a bit this driver in the meantime to have a better fix
>>>> than disabling the code with macros ?
>>>
>>> I'm happy to do that, but it would be nice to get the driver compiling
>>> first for ARM64 :-)
>>>
>>>> Otherwise, please try at least to group the code into a minimal set of macros.
>>>
>>> So, would it be accurate to say that you would prefer a patch that changes
>>> more lines of code, but minimizes preprocessor directives, to the current
>>> patch?
>>
>> Yes at least an attempt to factor out a bit the driver. Those #ifdef are
>> like #if 0, which is a quick fix. I am not strongly against this patch, but
>> it would be nice to take the opportunity to reorganize it a bit.
>
> How about we do something like the attached patch instead for now. That
> avoids any #ifdef'ery and still we don't attempt (and fail) to build the
> driver on 64-bit ARM.
>
> With that applied we can incrementally make the changes to untangle the
> ARM-specific parts and when the driver can build on 64-bit ARM we simply
> select TEGRA_TIMER via Kconfig.

Yes, that is exactly what I was thinking about after sending the 
previous email. And by this way, you also fixed the Kconfig option 
selection logic.


-- 
  <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

WARNING: multiple messages have this Message-ID (diff)
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Paul Walmsley <paul@pwsan.com>,
	linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-tegra@vger.kernel.org, Allen Martin <amartin@nvidia.com>,
	Stephen Warren <swarren@nvidia.com>,
	Thierry Reding <treding@nvidia.com>,
	Alexandre Courbot <gnurou@gmail.com>,
	pwalmsley@nvidia.com
Subject: Re: [PATCH] clocksource: tegra: wrap arch/arm-specific sections in CONFIG_ARM
Date: Fri, 09 Jan 2015 14:24:24 +0100	[thread overview]
Message-ID: <54AFD688.5000304@linaro.org> (raw)
In-Reply-To: <20150109122120.GJ16465@ulmo>

On 01/09/2015 01:21 PM, Thierry Reding wrote:
> On Fri, Jan 09, 2015 at 09:31:08AM +0100, Daniel Lezcano wrote:
>> On 01/09/2015 03:09 AM, Paul Walmsley wrote:
>>> Hello Daniel
>>>
>>> On Thu, 8 Jan 2015, Daniel Lezcano wrote:
>>>
>>>> On 12/09/2014 11:07 PM, 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.)
>>>>
>>>> IIUC, the cpuidle driver is not yet ready, right ?
>>>>
>>>> If it is the case, this driver is not needed yet, no ?
>>>
>>> The point of the patch is to allow the hardware drivers selected by
>>> CONFIG_ARCH_TEGRA to build for an arm64 kernel, just as they build for
>>> 32-bit ARM.
>>>
>>> There's nothing CPUIdle-specific about the patch - that is, this timer can
>>> be selected as a clockevent and clocksource provider without the use of
>>> CPUIdle - although low-power PM idle is likely to be a primary use-case.
>>
>> What I meant is this timer is not needed for the moment.
>>
>>>> Perhaps you can rework a bit this driver in the meantime to have a better fix
>>>> than disabling the code with macros ?
>>>
>>> I'm happy to do that, but it would be nice to get the driver compiling
>>> first for ARM64 :-)
>>>
>>>> Otherwise, please try at least to group the code into a minimal set of macros.
>>>
>>> So, would it be accurate to say that you would prefer a patch that changes
>>> more lines of code, but minimizes preprocessor directives, to the current
>>> patch?
>>
>> Yes at least an attempt to factor out a bit the driver. Those #ifdef are
>> like #if 0, which is a quick fix. I am not strongly against this patch, but
>> it would be nice to take the opportunity to reorganize it a bit.
>
> How about we do something like the attached patch instead for now. That
> avoids any #ifdef'ery and still we don't attempt (and fail) to build the
> driver on 64-bit ARM.
>
> With that applied we can incrementally make the changes to untangle the
> ARM-specific parts and when the driver can build on 64-bit ARM we simply
> select TEGRA_TIMER via Kconfig.

Yes, that is exactly what I was thinking about after sending the 
previous email. And by this way, you also fixed the Kconfig option 
selection logic.


-- 
  <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog


  reply	other threads:[~2015-01-09 13:24 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-09 22:07 [PATCH] clocksource: tegra: wrap arch/arm-specific sections in CONFIG_ARM Paul Walmsley
2015-01-08 14:21 ` Daniel Lezcano
     [not found]   ` <54AE9286.1090800-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-01-08 15:48     ` Thierry Reding
2015-01-08 15:48       ` Thierry Reding
     [not found] ` <alpine.DEB.2.02.1412092201200.31750-rwI8Ez+7Ko+d5PgPZx9QOdBPR1lH4CV8@public.gmane.org>
2014-12-10 11:14   ` Thierry Reding
2014-12-10 11:14     ` Thierry Reding
     [not found]     ` <20141210111425.GD15287-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2014-12-12  2:13       ` Paul Walmsley
2014-12-12  2:13         ` Paul Walmsley
2014-12-12  2:13         ` Paul Walmsley
2015-01-07 14:29   ` Thierry Reding
2015-01-07 14:29     ` Thierry Reding
2015-01-08 16:58   ` Daniel Lezcano
2015-01-08 16:58     ` Daniel Lezcano
2015-01-09  2:09     ` Paul Walmsley
2015-01-09  8:31       ` Daniel Lezcano
     [not found]         ` <54AF91CC.2090007-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-01-09 12:21           ` Thierry Reding
2015-01-09 12:21             ` Thierry Reding
2015-01-09 13:24             ` Daniel Lezcano [this message]
2015-01-09 13:24               ` Daniel Lezcano
     [not found]               ` <54AFD688.5000304-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-01-09 13:33                 ` Thierry Reding
2015-01-09 13:33                   ` Thierry Reding
2015-01-09 13:38                   ` Daniel Lezcano
2015-01-09 13:44                     ` Thierry Reding

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54AFD688.5000304@linaro.org \
    --to=daniel.lezcano-qsej5fyqhm4dnm+yrofe0a@public.gmane.org \
    --cc=amartin-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=paul-DWxLp4Yu+b8AvxtiuMwx3w@public.gmane.org \
    --cc=pwalmsley-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
    --cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.