From: Marc Zyngier <marc.zyngier@arm.com>
To: fu.wei@linaro.org, rjw@rjwysocki.net, lenb@kernel.org,
daniel.lezcano@linaro.org, tglx@linutronix.de,
mark.rutland@arm.com, lorenzo.pieralisi@arm.com,
sudeep.holla@arm.com, hanjun.guo@linaro.org
Cc: linux-arm-kernel@lists.infradead.org,
linaro-acpi@lists.linaro.org, linux-kernel@vger.kernel.org,
linux-acpi@vger.kernel.org, rruigrok@codeaurora.org,
harba@codeaurora.org, cov@codeaurora.org, timur@codeaurora.org,
graeme.gregory@linaro.org, al.stone@linaro.org, jcm@redhat.com,
wei@redhat.com, arnd@arndb.de, catalin.marinas@arm.com,
will.deacon@arm.com, Suravee.Suthikulpanit@amd.com,
leo.duran@amd.com, wim@iguana.be, linux@roeck-us.net,
linux-watchdog@vger.kernel.org, tn@semihalf.com,
christoffer.dall@linaro.org, julien.grall@arm.com
Subject: Re: [PATCH v12 7/8] clocksource/drivers/arm_arch_timer: Add GTDT support for memory-mapped timer
Date: Tue, 13 Sep 2016 12:00:41 +0100 [thread overview]
Message-ID: <57D7DC59.6000705@arm.com> (raw)
In-Reply-To: <1473763144-5653-8-git-send-email-fu.wei@linaro.org>
Argh, new version...
On 13/09/16 11:39, fu.wei@linaro.org wrote:
> From: Fu Wei <fu.wei@linaro.org>
>
> The patch add memory-mapped timer register support by using the information
> provided by the new GTDT driver of ACPI.
>
> Signed-off-by: Fu Wei <fu.wei@linaro.org>
> ---
> drivers/clocksource/arm_arch_timer.c | 127 ++++++++++++++++++++++++++++++++++-
> 1 file changed, 124 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
> index 0197ef9..d33802b 100644
> --- a/drivers/clocksource/arm_arch_timer.c
> +++ b/drivers/clocksource/arm_arch_timer.c
> @@ -888,7 +888,128 @@ CLOCKSOURCE_OF_DECLARE(armv7_arch_timer_mem, "arm,armv7-timer-mem",
> arch_timer_mem_init);
>
> #ifdef CONFIG_ACPI_GTDT
> -/* Initialize per-processor generic timer */
> +static struct gt_timer_data __init *arch_timer_mem_get_timer(
> + struct gt_block_data *gt_blocks)
> +{
> + struct gt_block_data *gt_block = gt_blocks;
> + struct gt_timer_data *best_frame = NULL;
> + void __iomem *cntctlbase;
> + u32 cnttidr;
> + int i;
> +
> + /*
> + * According to ARMv8 Architecture Reference Manual(ARM),
> + * the size of CNTCTLBase frame of memory-mapped timer
> + * is SZ_4K(Offset 0x000 – 0xFFF).
> + */
> + cntctlbase = ioremap(gt_block->cntctlbase_phy, SZ_4K);
> + if (!cntctlbase) {
> + pr_err("Failed to map mem timer control frame base address\n");
> + return NULL;
> + }
> + cnttidr = readl_relaxed(cntctlbase + CNTTIDR);
> +
> + /*
> + * Try to find a virtual capable frame. Otherwise fall back to a
> + * physical capable frame.
> + */
> + for (i = 0; i < gt_block->timer_count; i++) {
> + int n;
> + u32 cntacr;
> +
> + n = gt_block->timer[i].frame_nr;
> +
> + /* Try enabling everything, and see what sticks */
> + cntacr = CNTACR_RFRQ | CNTACR_RWPT | CNTACR_RPCT |
> + CNTACR_RWVT | CNTACR_RVOFF | CNTACR_RVCT;
> + writel_relaxed(cntacr, cntctlbase + CNTACR(n));
> + cntacr = readl_relaxed(cntctlbase + CNTACR(n));
> +
> + if ((cnttidr & CNTTIDR_VIRT(n)) &&
> + !(~cntacr & (CNTACR_RWVT | CNTACR_RVCT))) {
> + best_frame = >_block->timer[i];
> + arch_timer_mem_use_virtual = true;
> + break;
> + }
> +
> + if (~cntacr & (CNTACR_RWPT | CNTACR_RPCT))
> + continue;
> +
> + best_frame = >_block->timer[i];
> + }
> + iounmap(cntctlbase);
As I just said in my reply to the same patch in v11, all of this is
duplicating existing infrastructure that already exists for DT. Please
consider decoupling the core driver code from the firmware side and make
this reusable.
Thanks,
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2016-09-13 11:00 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-13 10:38 [PATCH v12 0/8] acpi, clocksource: add GTDT driver and GTDT support in arm_arch_timer fu.wei-QSEj5FYQhm4dnm+yROfE0A
[not found] ` <1473763144-5653-1-git-send-email-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2016-09-13 10:38 ` [PATCH v12 1/8] clocksource/drivers/arm_arch_timer: Move enums and defines to header file fu.wei-QSEj5FYQhm4dnm+yROfE0A
2016-09-13 10:38 ` [PATCH v12 2/8] clocksource/drivers/arm_arch_timer: Add a new enum for spi type fu.wei
2016-09-13 10:38 ` [PATCH v12 3/8] clocksource/drivers/arm_arch_timer: Improve printk relevant code fu.wei
2016-09-13 10:39 ` [PATCH v12 4/8] acpi/arm64: Add GTDT table parse driver fu.wei
2016-09-13 10:39 ` [PATCH v12 5/8] clocksource/drivers/arm_arch_timer: Simplify ACPI support code fu.wei
2016-09-13 10:39 ` [PATCH v12 6/8] acpi/arm64: Add memory-mapped timer support in GTDT driver fu.wei
2016-09-13 10:39 ` [PATCH v12 7/8] clocksource/drivers/arm_arch_timer: Add GTDT support for memory-mapped timer fu.wei
2016-09-13 11:00 ` Marc Zyngier [this message]
[not found] ` <57D7DC59.6000705-5wv7dgnIgG8@public.gmane.org>
2016-09-13 11:31 ` Fu Wei
2016-09-13 10:39 ` [PATCH v12 8/8] acpi/arm64: Add SBSA Generic Watchdog support in GTDT driver fu.wei
2016-09-29 8:33 ` [PATCH v12 0/8] acpi, clocksource: add GTDT driver and GTDT support in arm_arch_timer wangxiongfeng (C)
2016-09-29 16:53 ` Fu Wei
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=57D7DC59.6000705@arm.com \
--to=marc.zyngier@arm.com \
--cc=Suravee.Suthikulpanit@amd.com \
--cc=al.stone@linaro.org \
--cc=arnd@arndb.de \
--cc=catalin.marinas@arm.com \
--cc=christoffer.dall@linaro.org \
--cc=cov@codeaurora.org \
--cc=daniel.lezcano@linaro.org \
--cc=fu.wei@linaro.org \
--cc=graeme.gregory@linaro.org \
--cc=hanjun.guo@linaro.org \
--cc=harba@codeaurora.org \
--cc=jcm@redhat.com \
--cc=julien.grall@arm.com \
--cc=lenb@kernel.org \
--cc=leo.duran@amd.com \
--cc=linaro-acpi@lists.linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=lorenzo.pieralisi@arm.com \
--cc=mark.rutland@arm.com \
--cc=rjw@rjwysocki.net \
--cc=rruigrok@codeaurora.org \
--cc=sudeep.holla@arm.com \
--cc=tglx@linutronix.de \
--cc=timur@codeaurora.org \
--cc=tn@semihalf.com \
--cc=wei@redhat.com \
--cc=will.deacon@arm.com \
--cc=wim@iguana.be \
/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).