From: Will Deacon <will.deacon@arm.com>
To: Sudeep KarkadaNagesha <Sudeep.KarkadaNagesha@arm.com>
Cc: "linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>,
Catalin Marinas <Catalin.Marinas@arm.com>,
Thomas Gleixner <tglx@linutronix.de>,
Daniel Lezcano <daniel.lezcano@linaro.org>
Subject: Re: [PATCH v3 4/6] ARM64: arch_timer: configure and enable event stream
Date: Tue, 20 Aug 2013 14:27:12 +0100 [thread overview]
Message-ID: <20130820132712.GE26129@mudshark.cambridge.arm.com> (raw)
In-Reply-To: <1376414984-14182-5-git-send-email-Sudeep.KarkadaNagesha@arm.com>
Hi Sudeep,
Couple of comments inline...
On Tue, Aug 13, 2013 at 06:29:42PM +0100, Sudeep KarkadaNagesha wrote:
> From: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
>
> This patch configures the event stream frequency and enables it.
> It also adds the hwcaps as well as compat-specific definitions to
> the user to detect this event stream feature.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> Signed-off-by: Will Deacon <will.deacon@arm.com>
> [sudeep: moving ARM/ARM64 changes into separate patches]
> Signed-off-by: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
> ---
> arch/arm64/include/asm/arch_timer.h | 12 ++++++++++--
> arch/arm64/include/asm/hwcap.h | 4 +++-
> arch/arm64/include/uapi/asm/hwcap.h | 1 +
> arch/arm64/kernel/setup.c | 1 +
> 4 files changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm64/include/asm/arch_timer.h b/arch/arm64/include/asm/arch_timer.h
> index 69f5c8e..43f322a 100644
> --- a/arch/arm64/include/asm/arch_timer.h
> +++ b/arch/arm64/include/asm/arch_timer.h
> @@ -106,14 +106,22 @@ static inline void arch_counter_set_user_access(int divider)
> /* Disable user access to the timers and the physical counter. */
> cntkctl &= ~(ARCH_TIMER_USR_PT_ACCESS_EN
> | ARCH_TIMER_USR_VT_ACCESS_EN
> + | ARCH_TIMER_EVT_TRIGGER_MASK
> | ARCH_TIMER_USR_PCT_ACCESS_EN);
>
> - /* Enable user access to the virtual counter. */
> - cntkctl |= ARCH_TIMER_USR_VCT_ACCESS_EN;
> + /* Enable event stream and user access to the virtual counter */
> + cntkctl |= (divider << ARCH_TIMER_EVT_TRIGGER_SHIFT)
> + | ARCH_TIMER_VIRT_EVT_EN
> + | ARCH_TIMER_USR_VCT_ACCESS_EN;
>
> asm volatile("msr cntkctl_el1, %0" : : "r" (cntkctl));
> }
>
> +static inline void arch_timer_set_hwcap_evtstrm(void)
> +{
> + elf_hwcap |= HWCAP_EVTSTRM;
> +}
> +
> static inline u64 arch_counter_get_cntvct(void)
> {
> u64 cval;
> diff --git a/arch/arm64/include/asm/hwcap.h b/arch/arm64/include/asm/hwcap.h
> index 6d4482f..effd8f9 100644
> --- a/arch/arm64/include/asm/hwcap.h
> +++ b/arch/arm64/include/asm/hwcap.h
> @@ -30,6 +30,7 @@
> #define COMPAT_HWCAP_IDIVA (1 << 17)
> #define COMPAT_HWCAP_IDIVT (1 << 18)
> #define COMPAT_HWCAP_IDIV (COMPAT_HWCAP_IDIVA|COMPAT_HWCAP_IDIVT)
> +#define COMPAT_HWCAP_EVTSTRM (1 << 21)
Looking at the context, we should also add COMPAT_HWCAP_LPAE as a separate
patch (not part of this series).
> #ifndef __ASSEMBLY__
> /*
> @@ -41,7 +42,8 @@
> COMPAT_HWCAP_FAST_MULT|COMPAT_HWCAP_EDSP|\
> COMPAT_HWCAP_TLS|COMPAT_HWCAP_VFP|\
> COMPAT_HWCAP_VFPv3|COMPAT_HWCAP_VFPv4|\
> - COMPAT_HWCAP_NEON|COMPAT_HWCAP_IDIV)
> + COMPAT_HWCAP_NEON|COMPAT_HWCAP_IDIV|\
> + COMPAT_HWCAP_EVTSTRM)
So here you're hardcoding COMPAT_HWCAP_EVTSTRM in the COMPAT_ELF_HWCAP, yet
we only enable the native one from the arch-timer driver. The question then is
"Can we rely on the event-stream working for AArch64?". If so, we don't need
the native hwcap at all. If not, then we need to make the compat hwcap
dynamic.
Will
next prev parent reply other threads:[~2013-08-20 13:27 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-18 17:06 [PATCH 0/4] ARM/ARM64 architected timer updates Sudeep KarkadaNagesha
2013-06-18 17:07 ` [PATCH 1/4] drivers: clocksource: configure event stream for ARM arch timer Sudeep KarkadaNagesha
2013-06-18 17:07 ` [PATCH 2/4] ARM: arch_timer: add macros for bits in control register Sudeep KarkadaNagesha
2013-06-18 17:07 ` [PATCH 3/4] ARM/ARM64: arch_timer: remove __cpuinit attribute for arch_counter_set_user_access Sudeep KarkadaNagesha
2013-06-18 17:58 ` Sudeep KarkadaNagesha
2013-06-18 17:07 ` [PATCH 4/4] drivers: clocksource: add CPU PM notifier for ARM architected timer Sudeep KarkadaNagesha
2013-07-02 16:09 ` Jon Medhurst (Tixy)
2013-07-02 17:24 ` Sudeep KarkadaNagesha
2013-07-22 11:21 ` [PATCH v2 0/3] ARM/ARM64 architected timer updates Sudeep KarkadaNagesha
2013-07-22 11:21 ` [PATCH v2 1/3] drivers: clocksource: configure event stream for ARM arch timer Sudeep KarkadaNagesha
2013-07-23 10:23 ` Catalin Marinas
2013-07-23 10:33 ` Will Deacon
2013-07-23 11:12 ` Catalin Marinas
2013-07-25 9:45 ` [PATCH v3 " Sudeep KarkadaNagesha
2013-08-12 13:32 ` Sudeep KarkadaNagesha
2013-07-22 11:21 ` [PATCH v2 2/3] ARM: arch_timer: add macros for bits in control register Sudeep KarkadaNagesha
2013-07-22 11:21 ` [PATCH v2 3/3] drivers: clocksource: add CPU PM notifier for ARM architected timer Sudeep KarkadaNagesha
2013-08-02 9:32 ` [PATCH v2 0/3] ARM/ARM64 architected timer updates Sudeep KarkadaNagesha
2013-08-02 9:48 ` Daniel Lezcano
2013-08-02 9:55 ` Sudeep KarkadaNagesha
2013-08-02 12:12 ` Daniel Lezcano
2013-08-05 16:25 ` Sudeep KarkadaNagesha
2013-08-06 8:09 ` Daniel Lezcano
2013-08-06 9:01 ` Sudeep KarkadaNagesha
2013-08-12 13:16 ` Daniel Lezcano
2013-08-13 17:29 ` [PATCH v3 0/6] " Sudeep KarkadaNagesha
2013-08-13 17:29 ` [PATCH v3 1/6] ARM/ARM64: arch_timer: add macros for bits in control register Sudeep KarkadaNagesha
2013-08-14 8:50 ` Daniel Lezcano
2013-08-14 9:03 ` Marc Zyngier
2013-08-14 9:23 ` Daniel Lezcano
2013-08-13 17:29 ` [PATCH v3 2/6] drivers: clocksource: configure event stream for ARM arch timer Sudeep KarkadaNagesha
2013-08-13 17:29 ` [PATCH v3 3/6] ARM: arch_timer: configure and enable event stream Sudeep KarkadaNagesha
2013-08-13 17:29 ` [PATCH v3 4/6] ARM64: " Sudeep KarkadaNagesha
2013-08-20 13:27 ` Will Deacon [this message]
2013-08-20 14:27 ` Sudeep KarkadaNagesha
2013-08-20 16:16 ` Will Deacon
2013-08-20 16:23 ` Sudeep KarkadaNagesha
2013-08-20 17:08 ` Sudeep KarkadaNagesha
2013-08-21 17:52 ` Will Deacon
2013-08-13 17:29 ` [PATCH v3 5/6] drivers: clocksource: enable hwcaps for event stream on ARM arch timer Sudeep KarkadaNagesha
2013-08-13 17:29 ` [PATCH v3 6/6] drivers: clocksource: add CPU PM notifier for ARM architected timer Sudeep KarkadaNagesha
2013-08-14 9:08 ` [PATCH v3 0/6] ARM/ARM64 architected timer updates Daniel Lezcano
2013-08-14 9:17 ` Sudeep KarkadaNagesha
2013-08-14 10:51 ` Daniel Lezcano
2013-08-14 11:03 ` Sudeep KarkadaNagesha
2013-08-14 15:00 ` Daniel Lezcano
2013-08-20 17:14 ` Sudeep KarkadaNagesha
2013-08-23 9:26 ` Catalin Marinas
2013-08-23 9:57 ` Sudeep KarkadaNagesha
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=20130820132712.GE26129@mudshark.cambridge.arm.com \
--to=will.deacon@arm.com \
--cc=Catalin.Marinas@arm.com \
--cc=Lorenzo.Pieralisi@arm.com \
--cc=Sudeep.KarkadaNagesha@arm.com \
--cc=daniel.lezcano@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.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
all inboxes | Powered by JetHome®