From: daniel.lezcano@linaro.org (Daniel Lezcano)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4] clocksource: add Vybrid Family pit timer support
Date: Wed, 22 May 2013 14:54:13 +0200 [thread overview]
Message-ID: <519CBFF5.3060900@linaro.org> (raw)
In-Reply-To: <B56CDBE15CE27145A4B77D2D24263E851CBE88@039-SN1MPN1-003.039d.mgd.msft.net>
On 05/22/2013 11:47 AM, Lu Jingchang-B35083 wrote:
>
[ ... ]
>>
>>> +}
>>> +
>>> +static void __init pit_timer_init(struct device_node *np) {
>>> + struct clk *pit_clk;
>>> + void __iomem *timer_base;
>>> + int irq;
>>> +
>>> + timer_base = of_iomap(np, 0);
>>> + BUG_ON(!timer_base);
>>
>> You raise a bug and then you go ahead setting up the address with an
>> invalid value, leading to a random crash.
> [Lu Jingchang-B35083]
> The BUG_ON() will call BUG() if condition is true. It will print the stack trace and the current process will die, it won't go ahead, won't it? Thanks!
Pff, right. I just puzzled myself. Never mind.
>>> + /*
>>> + * PIT0 and PIT1 can be chained to build a 64-bit timer,
>>> + * so choose PIT2 as clocksource, PIT3 as clockevent device,
>>> + * and leave PIT0 and PIT1 unused for anyone else who needs them.
>>> + */
>>> + clksrc_base = timer_base + PITn_OFFSET(2);
>>> + clkevt_base = timer_base + PITn_OFFSET(3);
>>> +
>>> + irq = irq_of_parse_and_map(np, 0);
>>> +
>>> + pit_clk = of_clk_get(np, 0);
>>> + BUG_ON(IS_ERR(pit_clk));
>>> +
>>> + BUG_ON(clk_prepare_enable(pit_clk));
>>
>> Same here.
>>
>>> + cycle_per_jiffy = clk_get_rate(pit_clk)/(HZ);
>>> +
>>> + /* enable the pit module */
>>> + __raw_writel(~PITMCR_MDIS, timer_base + PITMCR);
>>> +
>>> + BUG_ON(pit_clocksource_init(pit_clk));
>>> +
>>> + pit_clockevent_init(pit_clk, irq);
>>
>> Please, remove these BUG_ON, this is inconsistent especially with a one
>> call init function. If pit_timer_init can't be initialized, just pr_err
>> + BUG.
> [Lu Jingchang-B35083]
> Do you mean that I should not use the BUG_ON or I need print an error information by pr_err before BUG. Thanks!
Actually, my initial comment was wrong, so you can ignore it.
Thank
-- Daniel
--
<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
WARNING: multiple messages have this Message-ID (diff)
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Lu Jingchang-B35083 <B35083@freescale.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"john.stultz@linaro.org" <john.stultz@linaro.org>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"shawn.guo@linaro.org" <shawn.guo@linaro.org>,
"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>
Subject: Re: [PATCH v4] clocksource: add Vybrid Family pit timer support
Date: Wed, 22 May 2013 14:54:13 +0200 [thread overview]
Message-ID: <519CBFF5.3060900@linaro.org> (raw)
In-Reply-To: <B56CDBE15CE27145A4B77D2D24263E851CBE88@039-SN1MPN1-003.039d.mgd.msft.net>
On 05/22/2013 11:47 AM, Lu Jingchang-B35083 wrote:
>
[ ... ]
>>
>>> +}
>>> +
>>> +static void __init pit_timer_init(struct device_node *np) {
>>> + struct clk *pit_clk;
>>> + void __iomem *timer_base;
>>> + int irq;
>>> +
>>> + timer_base = of_iomap(np, 0);
>>> + BUG_ON(!timer_base);
>>
>> You raise a bug and then you go ahead setting up the address with an
>> invalid value, leading to a random crash.
> [Lu Jingchang-B35083]
> The BUG_ON() will call BUG() if condition is true. It will print the stack trace and the current process will die, it won't go ahead, won't it? Thanks!
Pff, right. I just puzzled myself. Never mind.
>>> + /*
>>> + * PIT0 and PIT1 can be chained to build a 64-bit timer,
>>> + * so choose PIT2 as clocksource, PIT3 as clockevent device,
>>> + * and leave PIT0 and PIT1 unused for anyone else who needs them.
>>> + */
>>> + clksrc_base = timer_base + PITn_OFFSET(2);
>>> + clkevt_base = timer_base + PITn_OFFSET(3);
>>> +
>>> + irq = irq_of_parse_and_map(np, 0);
>>> +
>>> + pit_clk = of_clk_get(np, 0);
>>> + BUG_ON(IS_ERR(pit_clk));
>>> +
>>> + BUG_ON(clk_prepare_enable(pit_clk));
>>
>> Same here.
>>
>>> + cycle_per_jiffy = clk_get_rate(pit_clk)/(HZ);
>>> +
>>> + /* enable the pit module */
>>> + __raw_writel(~PITMCR_MDIS, timer_base + PITMCR);
>>> +
>>> + BUG_ON(pit_clocksource_init(pit_clk));
>>> +
>>> + pit_clockevent_init(pit_clk, irq);
>>
>> Please, remove these BUG_ON, this is inconsistent especially with a one
>> call init function. If pit_timer_init can't be initialized, just pr_err
>> + BUG.
> [Lu Jingchang-B35083]
> Do you mean that I should not use the BUG_ON or I need print an error information by pr_err before BUG. Thanks!
Actually, my initial comment was wrong, so you can ignore it.
Thank
-- Daniel
--
<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:[~2013-05-22 12:54 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-21 7:27 [PATCH v4] clocksource: add Vybrid Family pit timer support Jingchang Lu
2013-05-21 7:27 ` Jingchang Lu
2013-05-21 10:14 ` Daniel Lezcano
2013-05-21 10:14 ` Daniel Lezcano
2013-05-22 9:47 ` Lu Jingchang-B35083
2013-05-22 9:47 ` Lu Jingchang-B35083
2013-05-22 12:54 ` Daniel Lezcano [this message]
2013-05-22 12:54 ` Daniel Lezcano
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=519CBFF5.3060900@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/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.