From: Felipe Balbi <balbi@ti.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linux-arm-kernel@lists.infradead.org,
Tony Lindgren <tony@atomide.com>,
daniel.lezcano@linaro.org,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
tglx@linutronix.de,
Linux OMAP Mailing List <linux-omap@vger.kernel.org>
Subject: Re: [RFC/PATCH 11/11] arm: boot: dts: omap: add missing default status for 32k counter
Date: Mon, 5 Oct 2015 14:41:07 -0500 [thread overview]
Message-ID: <87io6lf6i4.fsf@saruman.tx.rr.com> (raw)
In-Reply-To: <20151005175230.GG18784@saruman.tx.rr.com>
[-- Attachment #1: Type: text/plain, Size: 4189 bytes --]
Felipe Balbi <balbi@ti.com> writes:
> On Wed, Sep 30, 2015 at 11:58:16PM +0200, Arnd Bergmann wrote:
>> On Wednesday 30 September 2015 09:12:09 Felipe Balbi wrote:
>> > On Wed, Sep 30, 2015 at 10:15:25AM +0200, Arnd Bergmann wrote:
>> > > On Tuesday 29 September 2015 15:44:06 Felipe Balbi wrote:
>> > > > All devices should have a default status. Ignoring
>> > > > the arguments if it should be 'okay' or 'disabled'
>> > > > by default, let's set them all the 'disabled' and
>> > > > have boards enable 32k counter.
>> > > >
>> > > > Signed-off-by: Felipe Balbi <balbi@ti.com>
>> > > >
>> > >
>> > > The patch looks good, but the description is slightly incorrect:
>> > > There is no reason to list "status='okay'" other than overriding
>> > > the 'disabled' status.
>> > >
>> > > I'd phrase it something like:
>> > >
>> > > "We want the use of the 32k counter to be a per-board setting,
>> > > so let's disable it by default in each dtsi file and override the
>> > > setting in the boards. Any board that does not wire up the counter
>> > > should leave it disabled".
>> > >
>> > > However, if you really want all boards to provide the counter all
>> > > the time, I'd argue that we're better off dropping this patch. We
>> > > use the status="disabled" trick for anything that may or may not
>> > > be working based on the board design, but things that are present
>> > > everywhere don't need this.
>> >
>> > okay, so here's the thing. While fiddling with the 32k counter, I noticed
>> > that even though there was no status listed, the thing still initializes
>> > fine. However, when moving 32k to drivers/clocksource and using
>> > CLOCKSOURCE_OF_DECLARE(), 32k would *NOT* probe unless I had an explicit
>> > status = "okay" in DT.
>>
>> Very strange, that sounds like a bug in the clocksource probe code.
>> Can you check how this happens?
>
> seems like something overwrites counter's status field, here's a snippet of boot
> log:
>
> [ 0.000000] ===> counter is available ??
> [ 0.000000] ===> no status -> TRUE!!
> [ 0.000000] ===> searching for timer
> [ 0.000000] ===> timer is available ??
> [ 0.000000] ===> no status -> TRUE!!
> [ 0.000005] sched_clock: 64 bits at 1000MHz, resolution 1ns, wraps every 4398046511103ns
> [ 0.000014] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
> [ 0.000047] ===> searching for timer
> [ 0.000051] ===> timer is available ??
> [ 0.000054] ===> no status -> TRUE!!
> [ 0.000307] ===> searching for counter
> [ 0.000311] ===> counter is available ??
> [ 0.000315] ===> counter status disabled
> [ 0.000318] ====> counter NOT available
>
> note that first time around counter had no status and later it got a status
> disabled from somewhere.
found it. arch/arm/mach-omap2/timer.c is the culprit:
/**
* omap_get_timer_dt - get a timer using device-tree
* @match - device-tree match structure for matching a device type
* @property - optional timer property to match
*
* Helper function to get a timer during early boot using device-tree for use
* as kernel system timer. Optionally, the property argument can be used to
* select a timer with a specific property. Once a timer is found then mark
* the timer node in device-tree as disabled, to prevent the kernel from
* registering this timer as a platform device and so no one else can use it.
*/
static struct device_node * __init omap_get_timer_dt(const struct of_device_id *match,
const char *property)
{
struct device_node *np;
for_each_matching_node(np, match) {
if (!of_device_is_available(np))
continue;
if (property && !of_get_property(np, property, NULL))
continue;
if (!property && (of_get_property(np, "ti,timer-alwon", NULL) ||
of_get_property(np, "ti,timer-dsp", NULL) ||
of_get_property(np, "ti,timer-pwm", NULL) ||
of_get_property(np, "ti,timer-secure", NULL)))
continue;
of_add_property(np, &device_disabled);
return np;
}
return NULL;
}
I'll patch this up and drop $subject
--
balbi
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: balbi@ti.com (Felipe Balbi)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC/PATCH 11/11] arm: boot: dts: omap: add missing default status for 32k counter
Date: Mon, 5 Oct 2015 14:41:07 -0500 [thread overview]
Message-ID: <87io6lf6i4.fsf@saruman.tx.rr.com> (raw)
In-Reply-To: <20151005175230.GG18784@saruman.tx.rr.com>
Felipe Balbi <balbi@ti.com> writes:
> On Wed, Sep 30, 2015 at 11:58:16PM +0200, Arnd Bergmann wrote:
>> On Wednesday 30 September 2015 09:12:09 Felipe Balbi wrote:
>> > On Wed, Sep 30, 2015 at 10:15:25AM +0200, Arnd Bergmann wrote:
>> > > On Tuesday 29 September 2015 15:44:06 Felipe Balbi wrote:
>> > > > All devices should have a default status. Ignoring
>> > > > the arguments if it should be 'okay' or 'disabled'
>> > > > by default, let's set them all the 'disabled' and
>> > > > have boards enable 32k counter.
>> > > >
>> > > > Signed-off-by: Felipe Balbi <balbi@ti.com>
>> > > >
>> > >
>> > > The patch looks good, but the description is slightly incorrect:
>> > > There is no reason to list "status='okay'" other than overriding
>> > > the 'disabled' status.
>> > >
>> > > I'd phrase it something like:
>> > >
>> > > "We want the use of the 32k counter to be a per-board setting,
>> > > so let's disable it by default in each dtsi file and override the
>> > > setting in the boards. Any board that does not wire up the counter
>> > > should leave it disabled".
>> > >
>> > > However, if you really want all boards to provide the counter all
>> > > the time, I'd argue that we're better off dropping this patch. We
>> > > use the status="disabled" trick for anything that may or may not
>> > > be working based on the board design, but things that are present
>> > > everywhere don't need this.
>> >
>> > okay, so here's the thing. While fiddling with the 32k counter, I noticed
>> > that even though there was no status listed, the thing still initializes
>> > fine. However, when moving 32k to drivers/clocksource and using
>> > CLOCKSOURCE_OF_DECLARE(), 32k would *NOT* probe unless I had an explicit
>> > status = "okay" in DT.
>>
>> Very strange, that sounds like a bug in the clocksource probe code.
>> Can you check how this happens?
>
> seems like something overwrites counter's status field, here's a snippet of boot
> log:
>
> [ 0.000000] ===> counter is available ??
> [ 0.000000] ===> no status -> TRUE!!
> [ 0.000000] ===> searching for timer
> [ 0.000000] ===> timer is available ??
> [ 0.000000] ===> no status -> TRUE!!
> [ 0.000005] sched_clock: 64 bits at 1000MHz, resolution 1ns, wraps every 4398046511103ns
> [ 0.000014] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
> [ 0.000047] ===> searching for timer
> [ 0.000051] ===> timer is available ??
> [ 0.000054] ===> no status -> TRUE!!
> [ 0.000307] ===> searching for counter
> [ 0.000311] ===> counter is available ??
> [ 0.000315] ===> counter status disabled
> [ 0.000318] ====> counter NOT available
>
> note that first time around counter had no status and later it got a status
> disabled from somewhere.
found it. arch/arm/mach-omap2/timer.c is the culprit:
/**
* omap_get_timer_dt - get a timer using device-tree
* @match - device-tree match structure for matching a device type
* @property - optional timer property to match
*
* Helper function to get a timer during early boot using device-tree for use
* as kernel system timer. Optionally, the property argument can be used to
* select a timer with a specific property. Once a timer is found then mark
* the timer node in device-tree as disabled, to prevent the kernel from
* registering this timer as a platform device and so no one else can use it.
*/
static struct device_node * __init omap_get_timer_dt(const struct of_device_id *match,
const char *property)
{
struct device_node *np;
for_each_matching_node(np, match) {
if (!of_device_is_available(np))
continue;
if (property && !of_get_property(np, property, NULL))
continue;
if (!property && (of_get_property(np, "ti,timer-alwon", NULL) ||
of_get_property(np, "ti,timer-dsp", NULL) ||
of_get_property(np, "ti,timer-pwm", NULL) ||
of_get_property(np, "ti,timer-secure", NULL)))
continue;
of_add_property(np, &device_disabled);
return np;
}
return NULL;
}
I'll patch this up and drop $subject
--
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20151005/8966de69/attachment.sig>
WARNING: multiple messages have this Message-ID (diff)
From: Felipe Balbi <balbi@ti.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: <linux-arm-kernel@lists.infradead.org>,
Tony Lindgren <tony@atomide.com>, <daniel.lezcano@linaro.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
<tglx@linutronix.de>,
Linux OMAP Mailing List <linux-omap@vger.kernel.org>
Subject: Re: [RFC/PATCH 11/11] arm: boot: dts: omap: add missing default status for 32k counter
Date: Mon, 5 Oct 2015 14:41:07 -0500 [thread overview]
Message-ID: <87io6lf6i4.fsf@saruman.tx.rr.com> (raw)
In-Reply-To: <20151005175230.GG18784@saruman.tx.rr.com>
[-- Attachment #1: Type: text/plain, Size: 4189 bytes --]
Felipe Balbi <balbi@ti.com> writes:
> On Wed, Sep 30, 2015 at 11:58:16PM +0200, Arnd Bergmann wrote:
>> On Wednesday 30 September 2015 09:12:09 Felipe Balbi wrote:
>> > On Wed, Sep 30, 2015 at 10:15:25AM +0200, Arnd Bergmann wrote:
>> > > On Tuesday 29 September 2015 15:44:06 Felipe Balbi wrote:
>> > > > All devices should have a default status. Ignoring
>> > > > the arguments if it should be 'okay' or 'disabled'
>> > > > by default, let's set them all the 'disabled' and
>> > > > have boards enable 32k counter.
>> > > >
>> > > > Signed-off-by: Felipe Balbi <balbi@ti.com>
>> > > >
>> > >
>> > > The patch looks good, but the description is slightly incorrect:
>> > > There is no reason to list "status='okay'" other than overriding
>> > > the 'disabled' status.
>> > >
>> > > I'd phrase it something like:
>> > >
>> > > "We want the use of the 32k counter to be a per-board setting,
>> > > so let's disable it by default in each dtsi file and override the
>> > > setting in the boards. Any board that does not wire up the counter
>> > > should leave it disabled".
>> > >
>> > > However, if you really want all boards to provide the counter all
>> > > the time, I'd argue that we're better off dropping this patch. We
>> > > use the status="disabled" trick for anything that may or may not
>> > > be working based on the board design, but things that are present
>> > > everywhere don't need this.
>> >
>> > okay, so here's the thing. While fiddling with the 32k counter, I noticed
>> > that even though there was no status listed, the thing still initializes
>> > fine. However, when moving 32k to drivers/clocksource and using
>> > CLOCKSOURCE_OF_DECLARE(), 32k would *NOT* probe unless I had an explicit
>> > status = "okay" in DT.
>>
>> Very strange, that sounds like a bug in the clocksource probe code.
>> Can you check how this happens?
>
> seems like something overwrites counter's status field, here's a snippet of boot
> log:
>
> [ 0.000000] ===> counter is available ??
> [ 0.000000] ===> no status -> TRUE!!
> [ 0.000000] ===> searching for timer
> [ 0.000000] ===> timer is available ??
> [ 0.000000] ===> no status -> TRUE!!
> [ 0.000005] sched_clock: 64 bits at 1000MHz, resolution 1ns, wraps every 4398046511103ns
> [ 0.000014] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
> [ 0.000047] ===> searching for timer
> [ 0.000051] ===> timer is available ??
> [ 0.000054] ===> no status -> TRUE!!
> [ 0.000307] ===> searching for counter
> [ 0.000311] ===> counter is available ??
> [ 0.000315] ===> counter status disabled
> [ 0.000318] ====> counter NOT available
>
> note that first time around counter had no status and later it got a status
> disabled from somewhere.
found it. arch/arm/mach-omap2/timer.c is the culprit:
/**
* omap_get_timer_dt - get a timer using device-tree
* @match - device-tree match structure for matching a device type
* @property - optional timer property to match
*
* Helper function to get a timer during early boot using device-tree for use
* as kernel system timer. Optionally, the property argument can be used to
* select a timer with a specific property. Once a timer is found then mark
* the timer node in device-tree as disabled, to prevent the kernel from
* registering this timer as a platform device and so no one else can use it.
*/
static struct device_node * __init omap_get_timer_dt(const struct of_device_id *match,
const char *property)
{
struct device_node *np;
for_each_matching_node(np, match) {
if (!of_device_is_available(np))
continue;
if (property && !of_get_property(np, property, NULL))
continue;
if (!property && (of_get_property(np, "ti,timer-alwon", NULL) ||
of_get_property(np, "ti,timer-dsp", NULL) ||
of_get_property(np, "ti,timer-pwm", NULL) ||
of_get_property(np, "ti,timer-secure", NULL)))
continue;
of_add_property(np, &device_disabled);
return np;
}
return NULL;
}
I'll patch this up and drop $subject
--
balbi
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]
next prev parent reply other threads:[~2015-10-05 19:41 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-29 20:43 [RFC/PATCH 00/11] arm: omap: counter32k rework Felipe Balbi
2015-09-29 20:43 ` Felipe Balbi
2015-09-29 20:43 ` Felipe Balbi
2015-09-29 20:43 ` [RFC/PATCH 01/11] arm: omap2: timer: get rid of obfuscating macros Felipe Balbi
2015-09-29 20:43 ` Felipe Balbi
2015-09-29 20:43 ` Felipe Balbi
2015-09-29 20:43 ` [RFC/PATCH 02/11] arm: omap2: timer: add a gptimer argument to sync32k_timer_init() Felipe Balbi
2015-09-29 20:43 ` Felipe Balbi
2015-09-29 20:43 ` Felipe Balbi
2015-09-29 20:43 ` [RFC/PATCH 03/11] arm: omap2: timer: remove __omap_gptimer_init() Felipe Balbi
2015-09-29 20:43 ` Felipe Balbi
2015-09-29 20:43 ` Felipe Balbi
2015-10-05 11:01 ` Tony Lindgren
2015-10-05 11:01 ` Tony Lindgren
2015-10-05 15:24 ` Felipe Balbi
2015-10-05 15:24 ` Felipe Balbi
2015-10-05 15:24 ` Felipe Balbi
2015-10-05 16:02 ` Tony Lindgren
2015-10-05 16:02 ` Tony Lindgren
2015-10-05 16:08 ` Felipe Balbi
2015-10-05 16:08 ` Felipe Balbi
2015-10-05 16:08 ` Felipe Balbi
2015-10-05 16:30 ` Tony Lindgren
2015-10-05 16:30 ` Tony Lindgren
2015-09-29 20:43 ` [RFC/PATCH 04/11] arm: omap2: timer: provide generic sync32k_timer_init function Felipe Balbi
2015-09-29 20:43 ` Felipe Balbi
2015-09-29 20:43 ` Felipe Balbi
2015-09-29 20:44 ` [RFC/PATCH 05/11] arm: omap2: timer: move realtime_counter_init() around Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-09-29 20:44 ` [RFC/PATCH 06/11] arm: omap2: timer: always call clocksource_of_init() when DT Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-09-29 20:44 ` [RFC/PATCH 07/11] arm: omap2: timer: remove omap4_local_timer_init Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-09-29 20:44 ` [RFC/PATCH 08/11] arm: omap2: timer: rename omap_sync32k_timer_init() Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-09-29 20:44 ` [RFC/PATCH 09/11] clocksource: add TI 32.768 Hz counter driver Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-10-01 21:58 ` John Stultz
2015-10-01 21:58 ` John Stultz
2015-10-01 21:59 ` Daniel Lezcano
2015-10-01 21:59 ` Daniel Lezcano
2015-10-05 10:50 ` Tony Lindgren
2015-10-05 10:50 ` Tony Lindgren
2015-10-05 11:03 ` Tony Lindgren
2015-10-05 11:03 ` Tony Lindgren
2015-10-01 22:20 ` John Stultz
2015-10-01 22:20 ` John Stultz
2015-10-01 22:30 ` Felipe Balbi
2015-10-01 22:30 ` Felipe Balbi
2015-09-29 20:44 ` [RFC/PATCH 10/11] arm: omap2: timer: limit hwmod usage to non-DT boots Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-09-29 20:44 ` [RFC/PATCH 11/11] arm: boot: dts: omap: add missing default status for 32k counter Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-09-29 20:44 ` Felipe Balbi
2015-09-30 8:15 ` Arnd Bergmann
2015-09-30 8:15 ` Arnd Bergmann
2015-09-30 14:12 ` Felipe Balbi
2015-09-30 14:12 ` Felipe Balbi
2015-09-30 14:12 ` Felipe Balbi
2015-09-30 21:58 ` Arnd Bergmann
2015-09-30 21:58 ` Arnd Bergmann
2015-10-05 17:52 ` Felipe Balbi
2015-10-05 17:52 ` Felipe Balbi
2015-10-05 17:52 ` Felipe Balbi
2015-10-05 19:41 ` Felipe Balbi [this message]
2015-10-05 19:41 ` Felipe Balbi
2015-10-05 19:41 ` Felipe Balbi
2015-10-06 8:08 ` Arnd Bergmann
2015-10-06 8:08 ` Arnd Bergmann
2015-10-06 14:57 ` Felipe Balbi
2015-10-06 14:57 ` Felipe Balbi
2015-10-06 14:57 ` Felipe Balbi
2015-10-06 15:18 ` Tony Lindgren
2015-10-06 15:18 ` Tony Lindgren
2015-10-06 15:29 ` Felipe Balbi
2015-10-06 15:29 ` Felipe Balbi
2015-10-06 15:29 ` Felipe Balbi
2015-10-05 10:45 ` Tony Lindgren
2015-10-05 10:45 ` Tony Lindgren
2015-09-30 8:22 ` [RFC/PATCH 00/11] arm: omap: counter32k rework Arnd Bergmann
2015-09-30 8:22 ` Arnd Bergmann
2015-09-30 14:13 ` Felipe Balbi
2015-09-30 14:13 ` Felipe Balbi
2015-09-30 14:13 ` Felipe Balbi
[not found] ` <20150930141338.GC31865-HgARHv6XitJaoMGHk7MhZQC/G2K4zDHf@public.gmane.org>
2015-09-30 14:42 ` Arnd Bergmann
2015-09-30 14:42 ` Arnd Bergmann
2015-09-30 14:42 ` Arnd Bergmann
2015-09-30 14:49 ` Arnd Bergmann
2015-09-30 14:49 ` Arnd Bergmann
2015-09-30 14:49 ` Arnd Bergmann
2015-09-30 14:57 ` Felipe Balbi
2015-09-30 14:57 ` Felipe Balbi
2015-09-30 14:57 ` Felipe Balbi
2015-09-30 15:03 ` Thierry Reding
2015-09-30 15:03 ` Thierry Reding
2015-09-30 15:03 ` Thierry Reding
2015-10-01 22:12 ` Daniel Lezcano
2015-10-01 22:12 ` Daniel Lezcano
2015-10-01 22:12 ` Daniel Lezcano
[not found] ` <560DAFC5.50003-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-10-05 10:55 ` Tony Lindgren
2015-10-05 10:55 ` Tony Lindgren
2015-10-05 10:55 ` Tony Lindgren
[not found] ` <20151005105554.GV23801-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2015-10-05 11:03 ` Arnd Bergmann
2015-10-05 11:03 ` Arnd Bergmann
2015-10-05 11:03 ` Arnd Bergmann
2015-10-05 11:13 ` Tony Lindgren
2015-10-05 11:13 ` Tony Lindgren
2015-10-05 11:13 ` Tony Lindgren
[not found] ` <20151005111341.GY23801-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2015-10-05 12:19 ` Arnd Bergmann
2015-10-05 12:19 ` Arnd Bergmann
2015-10-05 12:19 ` Arnd Bergmann
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=87io6lf6i4.fsf@saruman.tx.rr.com \
--to=balbi@ti.com \
--cc=arnd@arndb.de \
--cc=daniel.lezcano@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tony@atomide.com \
/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.