From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Andreas Färber" <afaerber@suse.de>,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
"Rob Herring" <robh+dt@kernel.org>,
"Philipp Zabel" <p.zabel@pengutronix.de>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Arnd Bergmann" <arnd@arndb.de>, "Stefan Agner" <stefan@agner.ch>,
"Peter Meerwald" <pmeerw@pmeerw.net>,
"Paul Bolle" <pebolle@tiscali.nl>,
"Jonathan Corbet" <corbet@lwn.net>,
"Pawel Moll" <pawel.moll@arm.com>,
"Mark Rutland" <mark.rutland@arm.com>,
"Ian Campbell" <ijc+devicetree@hellion.org.uk>,
"Kumar Gala" <galak@codeaurora.org>,
"Russell King" <linux@arm.linux.org.uk>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Jiri Slaby" <jslaby@suse.cz>,
"Andrew Morton" <akpm@linux-foundation.org>,
"David S. Miller" <davem@davemloft.net>,
"Mauro Carvalho Chehab" <mchehab@osg.>
Subject: Re: [PATCH v3 04/15] clocksource: Add ARM System timer driver
Date: Fri, 27 Mar 2015 09:36:37 +0100 [thread overview]
Message-ID: <55151695.5050203@linaro.org> (raw)
In-Reply-To: <CALszF6CtEf0w8AoaMwFzn34ACMjkW6obT5_MrduBdUOm7T=zNw@mail.gmail.com>
On 03/26/2015 09:19 PM, Maxime Coquelin wrote:
> Hi Daniel,
>
> Thanks for the review. Please find my answers below.
>
> 2015-03-26 10:50 GMT+01:00 Daniel Lezcano <daniel.lezcano@linaro.org>:
>> On 03/12/2015 10:55 PM, Maxime Coquelin wrote:
>>>
>>> From: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>>
>>> This patch adds clocksource support for ARMv7-M's System timer,
>>> also known as SysTick.
>>>
>>> Signed-off-by: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>
>>
>> Hi Maxime,
>>
>> the driver looks good. Three comments below.
>>
>> -- Daniel
>>
>>
[ ... ]
>>> +static void __init system_timer_of_register(struct device_node *np)
>>> +{
>>> + struct clk *clk;
>>> + void __iomem *base;
>>> + u32 rate = 0;
>>> + int ret;
>>> +
>>> + base = of_iomap(np, 0);
>>> + if (!base) {
>>> + pr_warn("system-timer: invalid base address\n");
>>> + return;
>>> + }
>>> +
>>> + clk = of_clk_get(np, 0);
>>> + if (!IS_ERR(clk)) {
>>> + ret = clk_prepare_enable(clk);
>>> + if (ret) {
>>> + clk_put(clk);
>>> + goto out_unmap;
>>> + }
>>> +
>>> + rate = clk_get_rate(clk);
>>> + }
>>> +
>>> + /* If no clock found, try to get clock-frequency property */
>>> + if (!rate) {
>>> + ret = of_property_read_u32(np, "clock-frequency", &rate);
>>> + if (ret)
>>> + goto out_unmap;
>>
>>
>> Shouldn't be 'goto out_clk_disable' ?
>
> No, because I assumed !rate means we failed to get the clock.
> Actually, clk_get_rate could return 0, so relying on rate value is not safe.
>
> I propose to get clock-frequency property if IS_ERR(clk).
>
> Is it fine for you?
Why not invert the conditions ? If the 'clock-frequency' is specified in
the DT then it overrides the clk_get_rate(). So the resulting code will be:
ret = of_property_read_u32(np, "clock-frequency", &rate);
if (ret) {
clk = of_clk_get(np, 0);
if (IS_ERR(clk))
goto out_unmap;
ret = clk_prepare_enable(clk);
if (ret)
goto out_clk_put;
rate = clk_get_rate(clk);
if (!rate)
goto out_clk_unprepare;
}
>>> + }
>>> +
>>> + writel_relaxed(SYSTICK_LOAD_RELOAD_MASK, base + SYST_RVR);
>>> + writel_relaxed(SYST_CSR_ENABLE, base + SYST_CSR);
>>> +
>>> + ret = clocksource_mmio_init(base + SYST_CVR, "arm_system_timer",
>>> rate,
>>> + 200, 24, clocksource_mmio_readl_down);
>>> + if (ret) {
>>> + pr_err("failed to init clocksource (%d)\n", ret);
>>> + goto out_clk_disable;
>>> + }
>>> +
>>> + pr_info("ARM System timer initialized as clocksource\n");
>>> +
>>> + return;
>>> +
>>> +out_clk_disable:
>>> + if (!IS_ERR(clk))
>>
>>
>> Why do you need this check ?
>
> To handle the case were no clock was found, but a clk-frequency value
> was provided.
>
>>
>> It isn't missing a clk_put ?
>
> Right, thanks for spotting this.
>
> I wonder if it makes sense to implement the error path.
> If we fail to initialize the clocksource, the system will be unusable.
>
> Maybe I should just perform a BUG_ON() in the error cases, as most of
> the other clocksource drivers do.
> What is your view?
I prefer to not BUG_ON in the init functions because it already happen
that drivers were bugging at init time and when a driver was reused on
another platform with several timers available, the board was not able
to boot because one timer was not used, hence not defined in the DT. I
don't know if that could be the case for this platform but I prefer to
keep thing going smoothly and return from init even if that lead to a
kernel hang. Of course, the errors must be displayed (pr_warn, pr_err,
pr_notice, etc ...).
>>
>>> + clk_disable_unprepare(clk);
>>> +out_unmap:
>>> + iounmap(base);
>>> + WARN(ret, "ARM System timer register failed (%d)\n", ret);
pr_warn
Thanks
-- 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: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Andreas Färber" <afaerber@suse.de>,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
"Rob Herring" <robh+dt@kernel.org>,
"Philipp Zabel" <p.zabel@pengutronix.de>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Arnd Bergmann" <arnd@arndb.de>, "Stefan Agner" <stefan@agner.ch>,
"Peter Meerwald" <pmeerw@pmeerw.net>,
"Paul Bolle" <pebolle@tiscali.nl>,
"Jonathan Corbet" <corbet@lwn.net>,
"Pawel Moll" <pawel.moll@arm.com>,
"Mark Rutland" <mark.rutland@arm.com>,
"Ian Campbell" <ijc+devicetree@hellion.org.uk>,
"Kumar Gala" <galak@codeaurora.org>,
"Russell King" <linux@arm.linux.org.uk>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Jiri Slaby" <jslaby@suse.cz>,
"Andrew Morton" <akpm@linux-foundation.org>,
"David S. Miller" <davem@davemloft.net>,
"Mauro Carvalho Chehab" <mchehab@osg.samsung.com>,
"Joe Perches" <joe@perches.com>, "Antti Palosaari" <crope@iki.fi>,
"Tejun Heo" <tj@kernel.org>, "Will Deacon" <will.deacon@arm.com>,
"Nikolay Borisov" <Nikolay.Borisov@arm.com>,
"Rusty Russell" <rusty@rustcorp.com.au>,
"Kees Cook" <keescook@chromium.org>,
"Michal Marek" <mmarek@suse.cz>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>,
Linux-Arch <linux-arch@vger.kernel.org>,
"linux-api@vger.kernel.org" <linux-api@vger.kernel.org>
Subject: Re: [PATCH v3 04/15] clocksource: Add ARM System timer driver
Date: Fri, 27 Mar 2015 09:36:37 +0100 [thread overview]
Message-ID: <55151695.5050203@linaro.org> (raw)
Message-ID: <20150327083637.ln4fvQDuUfoUTuKxDtKUVA_zbMEMsWI7FVS80PFaxEU@z> (raw)
In-Reply-To: <CALszF6CtEf0w8AoaMwFzn34ACMjkW6obT5_MrduBdUOm7T=zNw@mail.gmail.com>
On 03/26/2015 09:19 PM, Maxime Coquelin wrote:
> Hi Daniel,
>
> Thanks for the review. Please find my answers below.
>
> 2015-03-26 10:50 GMT+01:00 Daniel Lezcano <daniel.lezcano@linaro.org>:
>> On 03/12/2015 10:55 PM, Maxime Coquelin wrote:
>>>
>>> From: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>>
>>> This patch adds clocksource support for ARMv7-M's System timer,
>>> also known as SysTick.
>>>
>>> Signed-off-by: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>
>>
>> Hi Maxime,
>>
>> the driver looks good. Three comments below.
>>
>> -- Daniel
>>
>>
[ ... ]
>>> +static void __init system_timer_of_register(struct device_node *np)
>>> +{
>>> + struct clk *clk;
>>> + void __iomem *base;
>>> + u32 rate = 0;
>>> + int ret;
>>> +
>>> + base = of_iomap(np, 0);
>>> + if (!base) {
>>> + pr_warn("system-timer: invalid base address\n");
>>> + return;
>>> + }
>>> +
>>> + clk = of_clk_get(np, 0);
>>> + if (!IS_ERR(clk)) {
>>> + ret = clk_prepare_enable(clk);
>>> + if (ret) {
>>> + clk_put(clk);
>>> + goto out_unmap;
>>> + }
>>> +
>>> + rate = clk_get_rate(clk);
>>> + }
>>> +
>>> + /* If no clock found, try to get clock-frequency property */
>>> + if (!rate) {
>>> + ret = of_property_read_u32(np, "clock-frequency", &rate);
>>> + if (ret)
>>> + goto out_unmap;
>>
>>
>> Shouldn't be 'goto out_clk_disable' ?
>
> No, because I assumed !rate means we failed to get the clock.
> Actually, clk_get_rate could return 0, so relying on rate value is not safe.
>
> I propose to get clock-frequency property if IS_ERR(clk).
>
> Is it fine for you?
Why not invert the conditions ? If the 'clock-frequency' is specified in
the DT then it overrides the clk_get_rate(). So the resulting code will be:
ret = of_property_read_u32(np, "clock-frequency", &rate);
if (ret) {
clk = of_clk_get(np, 0);
if (IS_ERR(clk))
goto out_unmap;
ret = clk_prepare_enable(clk);
if (ret)
goto out_clk_put;
rate = clk_get_rate(clk);
if (!rate)
goto out_clk_unprepare;
}
>>> + }
>>> +
>>> + writel_relaxed(SYSTICK_LOAD_RELOAD_MASK, base + SYST_RVR);
>>> + writel_relaxed(SYST_CSR_ENABLE, base + SYST_CSR);
>>> +
>>> + ret = clocksource_mmio_init(base + SYST_CVR, "arm_system_timer",
>>> rate,
>>> + 200, 24, clocksource_mmio_readl_down);
>>> + if (ret) {
>>> + pr_err("failed to init clocksource (%d)\n", ret);
>>> + goto out_clk_disable;
>>> + }
>>> +
>>> + pr_info("ARM System timer initialized as clocksource\n");
>>> +
>>> + return;
>>> +
>>> +out_clk_disable:
>>> + if (!IS_ERR(clk))
>>
>>
>> Why do you need this check ?
>
> To handle the case were no clock was found, but a clk-frequency value
> was provided.
>
>>
>> It isn't missing a clk_put ?
>
> Right, thanks for spotting this.
>
> I wonder if it makes sense to implement the error path.
> If we fail to initialize the clocksource, the system will be unusable.
>
> Maybe I should just perform a BUG_ON() in the error cases, as most of
> the other clocksource drivers do.
> What is your view?
I prefer to not BUG_ON in the init functions because it already happen
that drivers were bugging at init time and when a driver was reused on
another platform with several timers available, the board was not able
to boot because one timer was not used, hence not defined in the DT. I
don't know if that could be the case for this platform but I prefer to
keep thing going smoothly and return from init even if that lead to a
kernel hang. Of course, the errors must be displayed (pr_warn, pr_err,
pr_notice, etc ...).
>>
>>> + clk_disable_unprepare(clk);
>>> +out_unmap:
>>> + iounmap(base);
>>> + WARN(ret, "ARM System timer register failed (%d)\n", ret);
pr_warn
Thanks
-- 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@linaro.org (Daniel Lezcano)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 04/15] clocksource: Add ARM System timer driver
Date: Fri, 27 Mar 2015 09:36:37 +0100 [thread overview]
Message-ID: <55151695.5050203@linaro.org> (raw)
In-Reply-To: <CALszF6CtEf0w8AoaMwFzn34ACMjkW6obT5_MrduBdUOm7T=zNw@mail.gmail.com>
On 03/26/2015 09:19 PM, Maxime Coquelin wrote:
> Hi Daniel,
>
> Thanks for the review. Please find my answers below.
>
> 2015-03-26 10:50 GMT+01:00 Daniel Lezcano <daniel.lezcano@linaro.org>:
>> On 03/12/2015 10:55 PM, Maxime Coquelin wrote:
>>>
>>> From: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>>
>>> This patch adds clocksource support for ARMv7-M's System timer,
>>> also known as SysTick.
>>>
>>> Signed-off-by: Maxime Coquelin <mcoquelin.stm32@gmail.com>
>>
>>
>> Hi Maxime,
>>
>> the driver looks good. Three comments below.
>>
>> -- Daniel
>>
>>
[ ... ]
>>> +static void __init system_timer_of_register(struct device_node *np)
>>> +{
>>> + struct clk *clk;
>>> + void __iomem *base;
>>> + u32 rate = 0;
>>> + int ret;
>>> +
>>> + base = of_iomap(np, 0);
>>> + if (!base) {
>>> + pr_warn("system-timer: invalid base address\n");
>>> + return;
>>> + }
>>> +
>>> + clk = of_clk_get(np, 0);
>>> + if (!IS_ERR(clk)) {
>>> + ret = clk_prepare_enable(clk);
>>> + if (ret) {
>>> + clk_put(clk);
>>> + goto out_unmap;
>>> + }
>>> +
>>> + rate = clk_get_rate(clk);
>>> + }
>>> +
>>> + /* If no clock found, try to get clock-frequency property */
>>> + if (!rate) {
>>> + ret = of_property_read_u32(np, "clock-frequency", &rate);
>>> + if (ret)
>>> + goto out_unmap;
>>
>>
>> Shouldn't be 'goto out_clk_disable' ?
>
> No, because I assumed !rate means we failed to get the clock.
> Actually, clk_get_rate could return 0, so relying on rate value is not safe.
>
> I propose to get clock-frequency property if IS_ERR(clk).
>
> Is it fine for you?
Why not invert the conditions ? If the 'clock-frequency' is specified in
the DT then it overrides the clk_get_rate(). So the resulting code will be:
ret = of_property_read_u32(np, "clock-frequency", &rate);
if (ret) {
clk = of_clk_get(np, 0);
if (IS_ERR(clk))
goto out_unmap;
ret = clk_prepare_enable(clk);
if (ret)
goto out_clk_put;
rate = clk_get_rate(clk);
if (!rate)
goto out_clk_unprepare;
}
>>> + }
>>> +
>>> + writel_relaxed(SYSTICK_LOAD_RELOAD_MASK, base + SYST_RVR);
>>> + writel_relaxed(SYST_CSR_ENABLE, base + SYST_CSR);
>>> +
>>> + ret = clocksource_mmio_init(base + SYST_CVR, "arm_system_timer",
>>> rate,
>>> + 200, 24, clocksource_mmio_readl_down);
>>> + if (ret) {
>>> + pr_err("failed to init clocksource (%d)\n", ret);
>>> + goto out_clk_disable;
>>> + }
>>> +
>>> + pr_info("ARM System timer initialized as clocksource\n");
>>> +
>>> + return;
>>> +
>>> +out_clk_disable:
>>> + if (!IS_ERR(clk))
>>
>>
>> Why do you need this check ?
>
> To handle the case were no clock was found, but a clk-frequency value
> was provided.
>
>>
>> It isn't missing a clk_put ?
>
> Right, thanks for spotting this.
>
> I wonder if it makes sense to implement the error path.
> If we fail to initialize the clocksource, the system will be unusable.
>
> Maybe I should just perform a BUG_ON() in the error cases, as most of
> the other clocksource drivers do.
> What is your view?
I prefer to not BUG_ON in the init functions because it already happen
that drivers were bugging at init time and when a driver was reused on
another platform with several timers available, the board was not able
to boot because one timer was not used, hence not defined in the DT. I
don't know if that could be the case for this platform but I prefer to
keep thing going smoothly and return from init even if that lead to a
kernel hang. Of course, the errors must be displayed (pr_warn, pr_err,
pr_notice, etc ...).
>>
>>> + clk_disable_unprepare(clk);
>>> +out_unmap:
>>> + iounmap(base);
>>> + WARN(ret, "ARM System timer register failed (%d)\n", ret);
pr_warn
Thanks
-- 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:[~2015-03-27 8:36 UTC|newest]
Thread overview: 136+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-12 21:55 [PATCH v3 00/15] Add support to STMicroelectronics STM32 family Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
[not found] ` <1426197361-19290-1-git-send-email-maxime.coquelin-qxv4g6HH51o@public.gmane.org>
2015-03-12 21:55 ` [PATCH v3 01/15] scripts: link-vmlinux: Don't pass page offset to kallsyms if XIP Kernel Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` [PATCH v3 10/15] serial: stm32-usart: Add STM32 USART Driver Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-13 9:41 ` Paul Bolle
2015-03-13 9:41 ` Paul Bolle
2015-03-13 9:41 ` Paul Bolle
2015-03-17 17:39 ` Maxime Coquelin
2015-03-17 17:39 ` Maxime Coquelin
2015-03-17 17:39 ` Maxime Coquelin
2015-03-13 14:19 ` Andy Shevchenko
2015-03-13 14:19 ` Andy Shevchenko
2015-03-13 14:19 ` Andy Shevchenko
2015-03-17 17:32 ` Maxime Coquelin
2015-03-17 17:32 ` Maxime Coquelin
2015-03-17 17:32 ` Maxime Coquelin
[not found] ` <CALszF6BWuUYRh+3rWnSQLApkAHA5dQXw=6x6D_evRtb+5B_ukA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-03-17 17:56 ` Andy Shevchenko
2015-03-17 17:56 ` Andy Shevchenko
2015-03-17 17:56 ` Andy Shevchenko
2015-03-19 13:55 ` Maxime Coquelin
2015-03-19 13:55 ` Maxime Coquelin
2015-03-19 13:55 ` Maxime Coquelin
[not found] ` <CALszF6A5Zu7i0hxSLTS-nfOAXmd0__jLjB=fHxK93Ex5Vbi9LA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-03-19 14:58 ` Peter Hurley
2015-03-19 14:58 ` Peter Hurley
2015-03-19 14:58 ` Peter Hurley
[not found] ` <550AE41C.8070803-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>
2015-03-19 17:35 ` Maxime Coquelin
2015-03-19 17:35 ` Maxime Coquelin
2015-03-19 17:35 ` Maxime Coquelin
2015-03-24 17:21 ` Maxime Coquelin
2015-03-24 17:21 ` Maxime Coquelin
2015-03-24 17:21 ` Maxime Coquelin
[not found] ` <CALszF6Dg7t9+F9NG+xREPQeaAj7T6D1GuGabkr8EvOAAdtg7yA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-03-24 17:44 ` Peter Hurley
2015-03-24 17:44 ` Peter Hurley
2015-03-24 17:44 ` Peter Hurley
[not found] ` <1426197361-19290-11-git-send-email-maxime.coquelin-qxv4g6HH51o@public.gmane.org>
2015-03-24 18:23 ` Peter Hurley
2015-03-24 18:23 ` Peter Hurley
2015-03-24 18:23 ` Peter Hurley
[not found] ` <5511ABAA.2010303-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>
2015-03-26 15:46 ` Russell King - ARM Linux
2015-03-26 15:46 ` Russell King - ARM Linux
2015-03-26 15:46 ` Russell King - ARM Linux
2015-03-26 22:05 ` Maxime Coquelin
2015-03-26 22:05 ` Maxime Coquelin
2015-03-26 22:05 ` Maxime Coquelin
2015-03-26 22:03 ` Maxime Coquelin
2015-03-26 22:03 ` Maxime Coquelin
2015-03-26 22:03 ` Maxime Coquelin
2015-03-27 11:32 ` Peter Hurley
2015-03-27 11:32 ` Peter Hurley
2015-03-27 11:32 ` Peter Hurley
2015-03-27 12:30 ` Maxime Coquelin
2015-03-27 12:30 ` Maxime Coquelin
2015-03-27 12:30 ` Maxime Coquelin
2015-03-12 21:55 ` [PATCH v3 02/15] ARM: ARMv7-M: Enlarge vector table up to 256 entries Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` [PATCH v3 03/15] dt-bindings: Document the ARM System timer bindings Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` [PATCH v3 04/15] clocksource: Add ARM System timer driver Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-26 9:50 ` Daniel Lezcano
2015-03-26 9:50 ` Daniel Lezcano
2015-03-26 9:50 ` Daniel Lezcano
2015-03-26 20:19 ` Maxime Coquelin
2015-03-26 20:19 ` Maxime Coquelin
2015-03-26 20:19 ` Maxime Coquelin
2015-03-27 8:36 ` Daniel Lezcano [this message]
2015-03-27 8:36 ` Daniel Lezcano
2015-03-27 8:36 ` Daniel Lezcano
2015-03-27 12:33 ` Maxime Coquelin
2015-03-27 12:33 ` Maxime Coquelin
2015-03-27 12:33 ` Maxime Coquelin
2015-03-12 21:55 ` [PATCH v3 05/15] dt-bindings: Document the STM32 reset bindings Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-13 0:09 ` Chanwoo Choi
2015-03-13 0:09 ` Chanwoo Choi
2015-03-13 0:09 ` Chanwoo Choi
2015-03-17 16:57 ` Maxime Coquelin
2015-03-17 16:57 ` Maxime Coquelin
2015-03-17 16:57 ` Maxime Coquelin
2015-03-13 8:50 ` Philipp Zabel
2015-03-13 8:50 ` Philipp Zabel
2015-03-13 8:50 ` Philipp Zabel
[not found] ` <1426236654.3083.19.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-03-17 17:13 ` Maxime Coquelin
2015-03-17 17:13 ` Maxime Coquelin
2015-03-17 17:13 ` Maxime Coquelin
2015-03-12 21:55 ` [PATCH v3 06/15] drivers: reset: Add STM32 reset driver Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-13 0:11 ` Chanwoo Choi
2015-03-13 0:11 ` Chanwoo Choi
2015-03-13 0:11 ` Chanwoo Choi
2015-03-13 8:54 ` Philipp Zabel
2015-03-13 8:54 ` Philipp Zabel
2015-03-13 8:54 ` Philipp Zabel
2015-03-17 17:23 ` Maxime Coquelin
2015-03-17 17:23 ` Maxime Coquelin
2015-03-17 17:23 ` Maxime Coquelin
2015-03-12 21:55 ` [PATCH v3 07/15] dt-bindings: Document the STM32 timer bindings Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` [PATCH v3 08/15] clockevent: Add STM32 Timer driver Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` [PATCH v3 09/15] dt-bindings: Document the STM32 USART bindings Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` [PATCH v3 11/15] ARM: Add STM32 family machine Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` [PATCH v3 12/15] ARM: dts: Add ARM System timer as clockevent in armv7m Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` [PATCH v3 13/15] ARM: dts: Introduce STM32F429 MCU Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:55 ` Maxime Coquelin
2015-03-12 21:56 ` [PATCH v3 14/15] ARM: configs: Add STM32 defconfig Maxime Coquelin
2015-03-12 21:56 ` Maxime Coquelin
2015-03-12 21:56 ` Maxime Coquelin
2015-03-12 21:56 ` [PATCH v3 15/15] MAINTAINERS: Add entry for STM32 MCUs Maxime Coquelin
2015-03-12 21:56 ` Maxime Coquelin
2015-03-12 21:56 ` Maxime Coquelin
2015-03-12 23:45 ` [PATCH v3 00/15] Add support to STMicroelectronics STM32 family Chanwoo Choi
2015-03-12 23:45 ` Chanwoo Choi
2015-03-12 23:45 ` Chanwoo Choi
2015-03-18 23:35 ` Chanwoo Choi
2015-03-18 23:35 ` Chanwoo Choi
2015-03-18 23:35 ` Chanwoo Choi
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=55151695.5050203@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=afaerber@suse.de \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=galak@codeaurora.org \
--cc=geert@linux-m68k.org \
--cc=gregkh@linuxfoundation.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=jslaby@suse.cz \
--cc=linus.walleij@linaro.org \
--cc=linux@arm.linux.org.uk \
--cc=mark.rutland@arm.com \
--cc=mchehab@osg. \
--cc=mcoquelin.stm32@gmail.com \
--cc=p.zabel@pengutronix.de \
--cc=pawel.moll@arm.com \
--cc=pebolle@tiscali.nl \
--cc=pmeerw@pmeerw.net \
--cc=robh+dt@kernel.org \
--cc=stefan@agner.ch \
--cc=tglx@linutronix.de \
--cc=u.kleine-koenig@pengutronix.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 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.