linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/3] clocksource: add device-tree support for PXA timer
Date: Fri, 04 Jul 2014 08:18:05 +0200	[thread overview]
Message-ID: <53B6471D.3010001@linaro.org> (raw)
In-Reply-To: <87tx6ynybb.fsf@free.fr>

On 07/03/2014 07:31 PM, Robert Jarzmik wrote:
> Daniel Lezcano <daniel.lezcano@linaro.org> writes:
>
>>> -#include <mach/regs-ost.h>
>>>    #include <mach/irqs.h>
>>> +#include <mach/hardware.h>
>>
>> Now as the driver is in 'drivers', do not reference the headers files in
>> mach. Moving the driver to the drivers directory implies some cleanup with the
>> headers dependencies.
> I don't see that very possible.
> Or said another way, I don't see how the irq number, IRQ_OST0 (in mach/irqs.h)
> can be guessed for non device-tree configuration.
>
>>> +#define OSMR0		0x00	/* */
>>> +#define OSMR1		0x04	/* */
>>> +#define OSMR2		0x08	/* */
>>> +#define OSMR3		0x0C	/* */
>>> +#define OSMR4		0x80	/* */
>>
>> Can you please remove those unused empty comment or fill them with something
>> appropriate.
> Sure.
>
>>
>>> +#define OSCR		0x10	/* OS Timer Counter Register */
>>> +#define OSCR4		0x40	/* OS Timer Counter Register */
>>> +#define OMCR4		0xC0	/* */
>>> +#define OSSR		0x14	/* OS Timer Status Register */
>>> +#define OWER		0x18	/* OS Timer Watchdog Enable Register */
>>> +#define OIER		0x1C	/* OS Timer Interrupt Enable Register */
>>> +
>>> +#define OSSR_M3		(1 << 3)	/* Match status channel 3 */
>>> +#define OSSR_M2		(1 << 2)	/* Match status channel 2 */
>>> +#define OSSR_M1		(1 << 1)	/* Match status channel 1 */
>>> +#define OSSR_M0		(1 << 0)	/* Match status channel 0 */
>>> +
>>> +#define OWER_WME	(1 << 0)	/* Watchdog Match Enable */
>>> +
>>> +#define OIER_E3		(1 << 3)	/* Interrupt enable channel 3 */
>>> +#define OIER_E2		(1 << 2)	/* Interrupt enable channel 2 */
>>> +#define OIER_E1		(1 << 1)	/* Interrupt enable channel 1 */
>>> +#define OIER_E0		(1 << 0)	/* Interrupt enable channel 0 */
>>
>> Is it possible to do some cleanups around regs-ost.h and here in order to remove
>> the unused macros. Also, it seems some define will be duplicate as they are
>> shared with the watchdog. Any plan to fix that ?
> For the cleanup, yes, will do.
>
> For the watchdog I don't have any plan yet. This patch's purpose is only to
> bring the PXA time source to drivers/clocksource, and make it compatible with
> both device-tree and non device-tree builds.
>
>>> @@ -33,9 +60,14 @@
>>>     * calls to sched_clock() which should always be the case in practice.
>>>     */
>>>
>>> +#define timer_readl(reg) readl_relaxed(timer_base + (reg))
>>> +#define timer_writel(val, reg) writel_relaxed((val), timer_base + (reg))
>>> +
>>> +static void __iomem *timer_base;
>>> +
>>>    static u64 notrace pxa_read_sched_clock(void)
>>>    {
>>> -	return readl_relaxed(OSCR);
>>
>> So here there is a change which is not explained in the changelog (timer_base
>> offset).
>>
>> Even it is obvious for me because I am used to see this kind of code, that would
>> deserve a better description in the changelog.
> OK, I'll add the backward compatibility explanation with non device-tree builds,
> and the necessary timer_base iomem hard encoded value. And the Janus double face
> explanation of the driver (both DT and non-DT oriented).
>
> Another question brought up by this : if I remove all 'mach/' includes, I loose
> io_p2v() right ? How can I guess timer_base then ?
>
>>> +	/* we are only interested in OS-timer0 irq */
>>> +	irq = irq_of_parse_and_map(np, 0);
>>> +	if (irq <= 0)
>>> +		panic("%s: unable to parse OS-timer0 irq\n", np->name);
>>
>> Is the 'panic' desirable ? The clksrc-of is written in a way to use different
>> clocks, no ?
> Good question.
>
> Maybe not, I followed the same rationale as in orion-timer, which is :
>   - as this timer is the only possible timer for PXA boards, and because without
>   it the kernel boot will stall (scheduling will be blocked), it's better to
>   panic early that to remain stalled.

There isn't the arm global timer ?

> Isn't this a good approach ?

I suppose we can live with that. IMO, the right fix would be in 
clksrc-of to pr_crit a message when an initialization fails. But that 
means to change all the init functions for all drivers which is out of 
the scope of this patchset.


-- 
  <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


  parent reply	other threads:[~2014-07-04  6:18 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-21 22:09 [PATCH 1/3] clocksource: move PXA timer to clocksource framework Robert Jarzmik
2014-06-21 22:09 ` [PATCH 2/3] clocksource: add device-tree support for PXA timer Robert Jarzmik
2014-07-03 12:05   ` Daniel Lezcano
2014-07-03 17:31     ` Robert Jarzmik
2014-07-03 17:39       ` Robert Jarzmik
2014-07-04  6:18       ` Daniel Lezcano [this message]
2014-07-04 19:46         ` Robert Jarzmik
2014-06-21 22:09 ` [PATCH 3/3] ARM: add CLKSRC_OF dependency for PXA Robert Jarzmik
2014-06-29 14:15 ` [PATCH 1/3] clocksource: move PXA timer to clocksource framework Robert Jarzmik
2014-07-03  4:37 ` Haojian Zhuang

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=53B6471D.3010001@linaro.org \
    --to=daniel.lezcano@linaro.org \
    --cc=haojian.zhuang@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robert.jarzmik@free.fr \
    --cc=tglx@linutronix.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).