From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: "Andreas Färber" <afaerber@suse.de>
Cc: arm@kernel.org, linux-arm-kernel@lists.infradead.org,
mp-cs@actions-semi.com, 96boards@ucrobotics.com,
support@lemaker.org, linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH v2 04/17] clocksource: Add Owl timer
Date: Sun, 26 Feb 2017 15:56:31 +0100 [thread overview]
Message-ID: <20170226145631.GB30601@mai> (raw)
In-Reply-To: <afd6bfbc-e17c-dd79-d2ff-42bac6c274db@suse.de>
On Sun, Feb 26, 2017 at 03:40:49PM +0100, Andreas Färber wrote:
> Am 25.02.2017 um 22:59 schrieb Daniel Lezcano:
> > On Sat, Feb 25, 2017 at 12:25:32AM +0100, Andreas Färber wrote:
> >> Am 24.02.2017 um 23:29 schrieb Daniel Lezcano:
> >>> On Fri, Feb 24, 2017 at 04:40:42AM +0100, Andreas Färber wrote:
> >>>> +static struct clock_event_device owl_clockevent = {
> >>>> + .name = "owl_tick",
> >>>> + .rating = 200,
> >>>> + .features = CLOCK_EVT_FEAT_ONESHOT,
> >>>
> >>> Did you consider adding CLOCK_EVT_FEAT_DYNIRQ ?
> >>
> >> No, it was not present downstream. Got a good example?
> >
> > https://lwn.net/Articles/541000/
>
> Looking at your current Nomadik code, it seems I can literally should
> just add this flag (done), without needing to implement any new hooks.
>
> On a related topic, how do we determine the cpumask? Downstream and some
> in-tree drivers use cpumask_of(0), others use cpu_possible_mask.
If you specify the CLOCK_EVT_FEAT_DYNIRQ, the cpumask is not important as it
will be changed dynamically.
Otherwise, cpumask_of(0) is often the default because it concentrates the
wakeup on a single cpu, allowing the other cpus to go to deep idle state and if
there are two clusters, it allows to have a cluster idle state. That results on
a better energy saving.
The usage of cpu_possible_mask will randomly wakeup any cpu.
> >> Do you spot anything functionally wrong in this driver? Despite adding
> >> this new driver, I am only getting the following additional earlycon output:
> >>
> >> [ 0.000029] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps
> >> every 89478484971ns
> >> [ 0.007888] clocksource: timer: mask: 0xffffffff max_cycles:
> >> 0xffffffff, max_idle_ns: 79635851949 ns
> >> [ 0.017748] Console: colour dummy device 80x30
> >> [ 0.022243] Calibrating delay loop...
> >> [ 0.030895] random: fast init done
> >> [ 0.231021] random: crng init done
> >>
> >> For S900 I'm using the generic timer instead.
> >
> > I don't get the issue, can you elaborate ?
>
> Found it myself: I forgot to clear the interrupt pending bit in the
> interrupt handler routine.
>
> + writel(OWL_Tx_CTL_PD, owl_timer_base + OWL_T1_CTL);
>
> Now it goes past this point, initializes the real serial driver and
> boots up to not finding the rootfs:
>
> [ 0.000032] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps
> every 89478484971ns
> [ 0.007898] clocksource: timer: mask: 0xffffffff max_cycles:
> 0xffffffff, max_idle_ns: 79635851949 ns
> [ 0.017886] Console: colour dummy device 80x30
> [ 0.022386] Calibrating delay loop... 405.50 BogoMIPS (lpj=2027520)
May be you should also consider using register_current_timer_delay() instead of
jiffies based delay loops.
> [ 0.083523] pid_max: default: 32768 minimum: 301
--
<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
next prev parent reply other threads:[~2017-02-26 14:56 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-24 3:40 [PATCH v2 00/17] ARM: Initial Actions Semi S500 and S900 enablement Andreas Färber
2017-02-24 3:40 ` [PATCH v2 01/17] dt-bindings: Add vendor prefix for Actions Semi Andreas Färber
2017-02-27 14:57 ` Andreas Färber
2017-02-28 0:11 ` Rob Herring
2017-02-24 3:40 ` [PATCH v2 02/17] dt-bindings: arm: Document Actions Semi S500 Andreas Färber
2017-02-28 0:12 ` Rob Herring
2017-02-24 3:40 ` [RFC v2 03/17] dt-bindings: timer: Document Owl timer Andreas Färber
2017-02-24 3:45 ` Andreas Färber
2017-02-27 14:40 ` Andreas Färber
2017-02-28 0:15 ` Rob Herring
2017-02-24 3:40 ` [PATCH v2 04/17] clocksource: Add " Andreas Färber
2017-02-24 22:29 ` Daniel Lezcano
2017-02-24 23:25 ` Andreas Färber
2017-02-25 21:59 ` Daniel Lezcano
2017-02-26 14:40 ` Andreas Färber
2017-02-26 14:56 ` Daniel Lezcano [this message]
2017-02-24 3:40 ` [PATCH v2 05/17] ARM: Prepare Actions Semi S500 Andreas Färber
2017-02-24 3:40 ` [PATCH v2 06/17] ARM64: Prepare Actions Semi S900 Andreas Färber
2017-02-24 3:40 ` [PATCH v2 07/17] dt-bindings: serial: Document Actions Semi Owl UARTs Andreas Färber
2017-02-28 0:16 ` Rob Herring
2017-02-24 3:40 ` [PATCH v2 08/17] tty: serial: Add Actions Semi Owl UART earlycon Andreas Färber
2017-02-24 3:40 ` [PATCH v2 09/17] Documentation: kernel-parameters: Document owl earlycon Andreas Färber
2017-03-03 22:46 ` Jonathan Corbet
2017-03-03 23:28 ` Andreas Färber
2017-02-24 3:40 ` [PATCH v2 10/17] ARM: dts: Add Actions Semi S500 and LeMaker Guitar Andreas Färber
2017-02-24 23:36 ` Andreas Färber
2017-02-24 3:40 ` [PATCH v2 11/17] dt-bindings: Add vendor prefix for uCRobotics Andreas Färber
2017-02-28 0:16 ` Rob Herring
2017-02-24 3:40 ` [PATCH v2 12/17] dt-bindings: arm: Document Actions Semi S900 Andreas Färber
2017-02-28 0:17 ` Rob Herring
2017-02-24 3:40 ` [RFC v2 13/17] ARM64: dts: Add Actions Semi S900 and Bubblegum-96 Andreas Färber
2017-02-24 3:49 ` Andreas Färber
2017-02-24 3:40 ` [RFC v2 14/17] MAINTAINERS: Add Actions Semi Owl section Andreas Färber
2017-02-24 3:40 ` [PATCH v2 15/17] tty: serial: owl: Implement console driver Andreas Färber
2017-02-24 3:40 ` [PATCH v2 16/17] ARM64: dts: actions: s900-bubblegum-96: Add fake uart5 clk Andreas Färber
2017-02-24 3:40 ` [PATCH v2 17/17] ARM: dts: s500-guitar-bb-rev-b: Add fake uart3 clock Andreas Färber
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=20170226145631.GB30601@mai \
--to=daniel.lezcano@linaro.org \
--cc=96boards@ucrobotics.com \
--cc=afaerber@suse.de \
--cc=arm@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mp-cs@actions-semi.com \
--cc=support@lemaker.org \
--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