All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fu Wei <fu.wei@linaro.org>
To: Mark Rutland <mark.rutland@arm.com>
Cc: Linaro ACPI Mailman List <linaro-acpi@lists.linaro.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	rruigrok@codeaurora.org, Wim Van Sebroeck <wim@iguana.be>,
	Wei Huang <wei@redhat.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Al Stone <al.stone@linaro.org>, Tomasz Nowicki <tn@semihalf.com>,
	Timur Tabi <timur@codeaurora.org>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
	Guenter Roeck <linux@roeck-us.net>, Len Brown <lenb@kernel.org>,
	"Abdulhamid, Harb" <harba@codeaurora.org>,
	Julien Grall <julien.grall@arm.com>,
	linux-watchdog@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
	Marc Zyngier <marc.zyngier@arm.com>, Jon Masters <jcm@redhat.com>,
	Christopher Covington <cov@codeaurora.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-arm-kernel@lists.infradead.org, G Gregory <graeme.gre>
Subject: Re: [PATCH v21 04/13] clocksource: arm_arch_timer: split arch_timer_rate for different types of timer
Date: Mon, 20 Mar 2017 21:35:12 +0800	[thread overview]
Message-ID: <CADyBb7utYy=VQ=hZnuecnCo1o=bXLg19ONHESUYfhBUdahoprw@mail.gmail.com> (raw)
In-Reply-To: <20170317190539.GD15909@leverpostej>

Hi Mark,

On 18 March 2017 at 03:05, Mark Rutland <mark.rutland@arm.com> wrote:
> On Tue, Feb 07, 2017 at 02:50:06AM +0800, fu.wei@linaro.org wrote:
>> From: Fu Wei <fu.wei@linaro.org>
>>
>> Currently, arch_timer_rate is used to store the frequency got from per-cpu
>> arch-timer or the memory-mapped (MMIO) timers. But those values come from
>> different registers which should all be initialized by firmware.
>>
>> This patch remove arch_timer_rate, and use arch_timer_sysreg_freq and
>> arch_timer_mmio_freq instead.
>>
>> Signed-off-by: Fu Wei <fu.wei@linaro.org>
>
> Thanks for attacking this. Generally, I do think this is the right thing
> to do.
>
> However...
>
>> @@ -1070,10 +1077,9 @@ static int __init arch_timer_mem_init(struct device_node *np)
>>        * Try to determine the frequency from the device tree,
>>        * if fail, get the frequency from the CNTFRQ reg of MMIO timer.
>>        */
>> -     if (!arch_timer_rate &&
>> -         of_property_read_u32(np, "clock-frequency", &arch_timer_rate))
>> -             arch_timer_rate = arch_timer_get_mmio_freq(base);
>> -     if (!arch_timer_rate) {
>> +     if (of_property_read_u32(np, "clock-frequency", &arch_timer_mmio_freq))
>> +             arch_timer_mmio_freq = arch_timer_get_mmio_freq(base);
>> +     if (!arch_timer_mmio_freq) {
>>               pr_err(FW_BUG "frequency not available for MMIO timer.\n");
>>               ret = -EINVAL;
>>               goto out;
>
> ... unfortunately, I believe that this will break some DT platforms that
> have been (unintentionally) relying on the way currently allow the
> frequency to be probed from either the MMIO timer or the sysreg timer.
>

Ah, I 'm really not aware of this. Thanks for pointing it out.

> So while the above was my suggestion, it was not my best.
>
> For the timebeing, let's leave the single arch_timer_rate, but ensure
> that it doesn't get in the way fo the ACPI code, by making the ACPI
> probe path:
>
> * Probe the sysreg timers first, using the sysreg cntfrq().
>
> * Probe the MMIO timers second, verifying that each MMIO cntfrq matches
>   the already-probed sysreg cntfrq.
>
> ... which is what I believe you suggested previously.

OK, NP, will do this way.

>
> Thanks,
> Mark.



-- 
Best regards,

Fu Wei
Software Engineer
Red Hat

WARNING: multiple messages have this Message-ID (diff)
From: Fu Wei <fu.wei@linaro.org>
To: Mark Rutland <mark.rutland@arm.com>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Len Brown <lenb@kernel.org>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Marc Zyngier <marc.zyngier@arm.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Hanjun Guo <hanjun.guo@linaro.org>,
	linux-arm-kernel@lists.infradead.org,
	Linaro ACPI Mailman List <linaro-acpi@lists.linaro.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
	rruigrok@codeaurora.org, "Abdulhamid,
	Harb" <harba@codeaurora.org>,
	Christopher Covington <cov@codeaurora.org>,
	Timur Tabi <timur@codeaurora.org>,
	G Gregory <graeme.gregory@linaro.org>,
	Al Stone <al.stone@linaro.org>, Jon Masters <jcm@redhat.com>,
	Wei Huang <wei@redhat.com>, Arnd Bergmann <arnd@arndb.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>,
	Leo Duran <leo.duran@amd.com>, Wim Van Sebroeck <wim@iguana.be>,
	Guenter Roeck <linux@roeck-us.net>,
	linux-watchdog@vger.kernel.org, Tomasz Nowicki <tn@semihalf.com>,
	Christoffer Dall <christoffer.dall@linaro.org>,
	Julien Grall <julien.grall@arm.com>
Subject: Re: [PATCH v21 04/13] clocksource: arm_arch_timer: split arch_timer_rate for different types of timer
Date: Mon, 20 Mar 2017 21:35:12 +0800	[thread overview]
Message-ID: <CADyBb7utYy=VQ=hZnuecnCo1o=bXLg19ONHESUYfhBUdahoprw@mail.gmail.com> (raw)
In-Reply-To: <20170317190539.GD15909@leverpostej>

Hi Mark,

On 18 March 2017 at 03:05, Mark Rutland <mark.rutland@arm.com> wrote:
> On Tue, Feb 07, 2017 at 02:50:06AM +0800, fu.wei@linaro.org wrote:
>> From: Fu Wei <fu.wei@linaro.org>
>>
>> Currently, arch_timer_rate is used to store the frequency got from per-cpu
>> arch-timer or the memory-mapped (MMIO) timers. But those values come from
>> different registers which should all be initialized by firmware.
>>
>> This patch remove arch_timer_rate, and use arch_timer_sysreg_freq and
>> arch_timer_mmio_freq instead.
>>
>> Signed-off-by: Fu Wei <fu.wei@linaro.org>
>
> Thanks for attacking this. Generally, I do think this is the right thing
> to do.
>
> However...
>
>> @@ -1070,10 +1077,9 @@ static int __init arch_timer_mem_init(struct device_node *np)
>>        * Try to determine the frequency from the device tree,
>>        * if fail, get the frequency from the CNTFRQ reg of MMIO timer.
>>        */
>> -     if (!arch_timer_rate &&
>> -         of_property_read_u32(np, "clock-frequency", &arch_timer_rate))
>> -             arch_timer_rate = arch_timer_get_mmio_freq(base);
>> -     if (!arch_timer_rate) {
>> +     if (of_property_read_u32(np, "clock-frequency", &arch_timer_mmio_freq))
>> +             arch_timer_mmio_freq = arch_timer_get_mmio_freq(base);
>> +     if (!arch_timer_mmio_freq) {
>>               pr_err(FW_BUG "frequency not available for MMIO timer.\n");
>>               ret = -EINVAL;
>>               goto out;
>
> ... unfortunately, I believe that this will break some DT platforms that
> have been (unintentionally) relying on the way currently allow the
> frequency to be probed from either the MMIO timer or the sysreg timer.
>

Ah, I 'm really not aware of this. Thanks for pointing it out.

> So while the above was my suggestion, it was not my best.
>
> For the timebeing, let's leave the single arch_timer_rate, but ensure
> that it doesn't get in the way fo the ACPI code, by making the ACPI
> probe path:
>
> * Probe the sysreg timers first, using the sysreg cntfrq().
>
> * Probe the MMIO timers second, verifying that each MMIO cntfrq matches
>   the already-probed sysreg cntfrq.
>
> ... which is what I believe you suggested previously.

OK, NP, will do this way.

>
> Thanks,
> Mark.



-- 
Best regards,

Fu Wei
Software Engineer
Red Hat

WARNING: multiple messages have this Message-ID (diff)
From: fu.wei@linaro.org (Fu Wei)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v21 04/13] clocksource: arm_arch_timer: split arch_timer_rate for different types of timer
Date: Mon, 20 Mar 2017 21:35:12 +0800	[thread overview]
Message-ID: <CADyBb7utYy=VQ=hZnuecnCo1o=bXLg19ONHESUYfhBUdahoprw@mail.gmail.com> (raw)
In-Reply-To: <20170317190539.GD15909@leverpostej>

Hi Mark,

On 18 March 2017 at 03:05, Mark Rutland <mark.rutland@arm.com> wrote:
> On Tue, Feb 07, 2017 at 02:50:06AM +0800, fu.wei at linaro.org wrote:
>> From: Fu Wei <fu.wei@linaro.org>
>>
>> Currently, arch_timer_rate is used to store the frequency got from per-cpu
>> arch-timer or the memory-mapped (MMIO) timers. But those values come from
>> different registers which should all be initialized by firmware.
>>
>> This patch remove arch_timer_rate, and use arch_timer_sysreg_freq and
>> arch_timer_mmio_freq instead.
>>
>> Signed-off-by: Fu Wei <fu.wei@linaro.org>
>
> Thanks for attacking this. Generally, I do think this is the right thing
> to do.
>
> However...
>
>> @@ -1070,10 +1077,9 @@ static int __init arch_timer_mem_init(struct device_node *np)
>>        * Try to determine the frequency from the device tree,
>>        * if fail, get the frequency from the CNTFRQ reg of MMIO timer.
>>        */
>> -     if (!arch_timer_rate &&
>> -         of_property_read_u32(np, "clock-frequency", &arch_timer_rate))
>> -             arch_timer_rate = arch_timer_get_mmio_freq(base);
>> -     if (!arch_timer_rate) {
>> +     if (of_property_read_u32(np, "clock-frequency", &arch_timer_mmio_freq))
>> +             arch_timer_mmio_freq = arch_timer_get_mmio_freq(base);
>> +     if (!arch_timer_mmio_freq) {
>>               pr_err(FW_BUG "frequency not available for MMIO timer.\n");
>>               ret = -EINVAL;
>>               goto out;
>
> ... unfortunately, I believe that this will break some DT platforms that
> have been (unintentionally) relying on the way currently allow the
> frequency to be probed from either the MMIO timer or the sysreg timer.
>

Ah, I 'm really not aware of this. Thanks for pointing it out.

> So while the above was my suggestion, it was not my best.
>
> For the timebeing, let's leave the single arch_timer_rate, but ensure
> that it doesn't get in the way fo the ACPI code, by making the ACPI
> probe path:
>
> * Probe the sysreg timers first, using the sysreg cntfrq().
>
> * Probe the MMIO timers second, verifying that each MMIO cntfrq matches
>   the already-probed sysreg cntfrq.
>
> ... which is what I believe you suggested previously.

OK, NP, will do this way.

>
> Thanks,
> Mark.



-- 
Best regards,

Fu Wei
Software Engineer
Red Hat

  reply	other threads:[~2017-03-20 13:35 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-06 18:50 [PATCH v21 00/13] acpi, clocksource: add GTDT driver and GTDT support in arm_arch_timer fu.wei
2017-02-06 18:50 ` fu.wei at linaro.org
2017-02-06 18:50 ` [PATCH v21 01/13] clocksource: arm_arch_timer: introduce two functions to get the frequency from mmio and sysreg fu.wei
2017-02-06 18:50   ` fu.wei at linaro.org
2017-03-17 18:05   ` Mark Rutland
2017-03-17 18:05     ` Mark Rutland
2017-03-17 18:05     ` Mark Rutland
2017-03-20  7:36     ` Fu Wei
2017-03-20  7:36       ` Fu Wei
2017-03-20  7:36       ` Fu Wei
2017-03-20  9:43       ` Fu Wei
2017-03-20  9:43         ` Fu Wei
2017-03-20  9:43         ` Fu Wei
2017-03-20 10:41         ` Mark Rutland
2017-03-20 10:41           ` Mark Rutland
2017-03-20 10:41           ` Mark Rutland
2017-03-20 11:09           ` Fu Wei
2017-03-20 11:09             ` Fu Wei
2017-03-20 11:09             ` Fu Wei
2017-02-06 18:50 ` [PATCH v21 03/13] clocksource: arm_arch_timer: remove arch_timer_detect_rate fu.wei
2017-02-06 18:50   ` fu.wei at linaro.org
2017-03-17 18:07   ` Mark Rutland
2017-03-17 18:07     ` Mark Rutland
2017-03-17 18:07     ` Mark Rutland
2017-03-20  6:59     ` Fu Wei
2017-03-20  6:59       ` Fu Wei
2017-03-20  6:59       ` Fu Wei
2017-02-06 18:50 ` [PATCH v21 04/13] clocksource: arm_arch_timer: split arch_timer_rate for different types of timer fu.wei
2017-02-06 18:50   ` fu.wei at linaro.org
2017-03-17 19:05   ` Mark Rutland
2017-03-17 19:05     ` Mark Rutland
2017-03-17 19:05     ` Mark Rutland
2017-03-20 13:35     ` Fu Wei [this message]
2017-03-20 13:35       ` Fu Wei
2017-03-20 13:35       ` Fu Wei
2017-02-06 18:50 ` [PATCH v21 05/13] clocksource: arm_arch_timer: refactor arch_timer_needs_probing fu.wei
2017-02-06 18:50   ` fu.wei at linaro.org
2017-02-06 18:50 ` [PATCH v21 06/13] clocksource: arm_arch_timer: move arch_timer_needs_of_probing into DT init call fu.wei
2017-02-06 18:50   ` fu.wei at linaro.org
2017-02-06 18:50 ` [PATCH v21 07/13] clocksource: arm_arch_timer: introduce some new structs to prepare for GTDT fu.wei
2017-02-06 18:50   ` fu.wei at linaro.org
2017-02-06 18:50 ` [PATCH v21 08/13] clocksource: arm_arch_timer: refactor MMIO timer probing fu.wei
2017-02-06 18:50   ` fu.wei at linaro.org
2017-02-06 18:50 ` [PATCH v21 09/13] acpi/arm64: Add GTDT table parse driver fu.wei
2017-02-06 18:50   ` fu.wei at linaro.org
2017-02-06 18:50 ` [PATCH v21 10/13] clocksource: arm_arch_timer: simplify ACPI support code fu.wei
2017-02-06 18:50   ` fu.wei at linaro.org
2017-02-06 18:50 ` [PATCH v21 11/13] acpi/arm64: Add memory-mapped timer support in GTDT driver fu.wei
2017-02-06 18:50   ` fu.wei at linaro.org
2017-02-06 18:50   ` fu.wei
2017-03-17 19:40   ` Mark Rutland
2017-03-17 19:40     ` Mark Rutland
2017-03-17 19:40     ` Mark Rutland
2017-03-20 13:38     ` Fu Wei
2017-03-20 13:38       ` Fu Wei
2017-03-20 13:38       ` Fu Wei
2017-02-06 18:50 ` [PATCH v21 12/13] clocksource: arm_arch_timer: add GTDT support for memory-mapped timer fu.wei
2017-02-06 18:50   ` fu.wei at linaro.org
2017-02-06 18:50 ` [PATCH v21 13/13] acpi/arm64: Add SBSA Generic Watchdog support in GTDT driver fu.wei
2017-02-06 18:50   ` fu.wei at linaro.org
2017-02-06 18:50   ` fu.wei
2017-03-17 20:01   ` Mark Rutland
2017-03-17 20:01     ` Mark Rutland
2017-03-17 20:01     ` Mark Rutland
2017-03-17 20:01     ` Mark Rutland
2017-03-20 17:57     ` Fu Wei
2017-03-20 17:57       ` Fu Wei
2017-03-20 17:57       ` Fu Wei
2017-03-20 18:09       ` Mark Rutland
2017-03-20 18:09         ` Mark Rutland
2017-03-20 18:09         ` Mark Rutland
2017-03-20 18:50         ` [Linaro-acpi] " Lurndal, Scott
2017-03-20 18:50           ` Lurndal, Scott
2017-03-20 18:50           ` Lurndal, Scott
2017-03-21  3:48           ` Fu Wei
2017-03-21  3:48             ` Fu Wei
2017-03-21  3:48             ` Fu Wei
2017-03-21 12:48             ` Lurndal, Scott
2017-03-21 12:48               ` Lurndal, Scott
2017-03-21 12:48               ` Lurndal, Scott
2017-03-21  5:12         ` Fu Wei
2017-03-21  5:12           ` Fu Wei
2017-03-21  5:12           ` Fu Wei
     [not found] ` <20170206185015.12296-1-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2017-02-06 18:50   ` [PATCH v21 02/13] clocksource: arm_arch_timer: separate out device-tree code from arch_timer_detect_rate fu.wei-QSEj5FYQhm4dnm+yROfE0A
2017-02-06 18:50     ` fu.wei at linaro.org
2017-02-06 18:50     ` fu.wei
2017-02-20 16:20   ` [PATCH v21 00/13] acpi, clocksource: add GTDT driver and GTDT support in arm_arch_timer Fu Wei
2017-02-20 16:20     ` Fu Wei
2017-02-20 16:20     ` Fu Wei
     [not found]     ` <CADyBb7t_zrLetPQQ8=k8oN6iMHhuMHO8O3XTZqGYvTT9p0evKw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-03-09 22:47       ` Fu Wei
2017-03-09 22:47         ` Fu Wei
2017-03-09 22:47         ` Fu Wei
2017-03-17 20:03         ` Mark Rutland
2017-03-17 20:03           ` Mark Rutland
2017-03-17 20:03           ` Mark Rutland
2017-03-20  5:09           ` Fu Wei
2017-03-20  5:09             ` Fu Wei
2017-03-20  5:09             ` 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='CADyBb7utYy=VQ=hZnuecnCo1o=bXLg19ONHESUYfhBUdahoprw@mail.gmail.com' \
    --to=fu.wei@linaro.org \
    --cc=al.stone@linaro.org \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=cov@codeaurora.org \
    --cc=daniel.lezcano@linaro.org \
    --cc=harba@codeaurora.org \
    --cc=jcm@redhat.com \
    --cc=julien.grall@arm.com \
    --cc=lenb@kernel.org \
    --cc=linaro-acpi@lists.linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=marc.zyngier@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=rruigrok@codeaurora.org \
    --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 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.