From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Felipe Balbi <balbi@ti.com>, Tony Lindgren <tony@atomide.com>
Cc: Linux OMAP Mailing List <linux-omap@vger.kernel.org>,
Linux ARM Kernel Mailing List
<linux-arm-kernel@lists.infradead.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
tglx@linutronix.de, John Stultz <john.stultz@linaro.org>
Subject: Re: [RFC/PATCH 09/11] clocksource: add TI 32.768 Hz counter driver
Date: Thu, 1 Oct 2015 23:59:52 +0200 [thread overview]
Message-ID: <560DACD8.8000301@linaro.org> (raw)
In-Reply-To: <1443559446-26969-10-git-send-email-balbi@ti.com>
Hi Felipe,
On 09/29/2015 10:44 PM, Felipe Balbi wrote:
> Introduce a new clocksource driver for Texas
> Instruments 32.768 Hz device which is available
> on most OMAP-like devices.
>
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
[ ... ]
> +config CLKSRC_TI_32K
> + bool "Texas Instruments 32.768 Hz Clocksource"
> + depends on OF && ARCH_OMAP2PLUS
> + select CLKSRC_OF
> + help
> + This option enables support for Texas Instruments 32.768 Hz clocksource
> + available on many OMAP-like platforms.
> +
It is the omap's Kconfig which should select the timer, not the user to
enable the timer.
It should be something like:
config CLKSRC_TI_32K
bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST
select CLKSRC_OF if OF
help
This option enables support for Texas Instruments 32.768 Hz
clocksource available on many OMAP-like platforms.
And in the omap's Kconfig:
select CLKSRC_TI_32K
> config CLKSRC_STM32
> bool "Clocksource for STM32 SoCs" if !ARCH_STM32
> depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST)
> diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile
> index 5c00863c3e33..749abc3665b3 100644
> --- a/drivers/clocksource/Makefile
> +++ b/drivers/clocksource/Makefile
> @@ -45,6 +45,7 @@ obj-$(CONFIG_VF_PIT_TIMER) += vf_pit_timer.o
> obj-$(CONFIG_CLKSRC_QCOM) += qcom-timer.o
> obj-$(CONFIG_MTK_TIMER) += mtk_timer.o
> obj-$(CONFIG_CLKSRC_PISTACHIO) += time-pistachio.o
> +obj-$(CONFIG_CLKSRC_TI_32K) += timer-ti-32k.o
>
> obj-$(CONFIG_ARM_ARCH_TIMER) += arm_arch_timer.o
> obj-$(CONFIG_ARM_GLOBAL_TIMER) += arm_global_timer.o
> diff --git a/drivers/clocksource/timer-ti-32k.c b/drivers/clocksource/timer-ti-32k.c
> new file mode 100644
> index 000000000000..10ccce2eb645
> --- /dev/null
> +++ b/drivers/clocksource/timer-ti-32k.c
> @@ -0,0 +1,121 @@
> +/**
> + * timer-ti-32k.c - OMAP2 32k Timer Support
> + *
> + * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com
> + *
> + * This program is free software: you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 of
> + * the License as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program. If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#include <linux/init.h>
> +#include <linux/time.h>
> +#include <linux/interrupt.h>
> +#include <linux/err.h>
> +#include <linux/irq.h>
> +#include <linux/sched_clock.h>
> +#include <linux/clocksource.h>
> +#include <linux/slab.h>
> +#include <linux/of.h>
> +#include <linux/of_address.h>
> +#include <linux/of_irq.h>
> +
> +#include <asm/mach/time.h>
Can you check all these headers are needed ? I don't think interrupt.h,
or slab.h or irq.h, etc ... are needed.
A few nits below:
> +/* OMAP2_32KSYNCNT_CR_OFF: offset of 32ksync counter register */
I am not sure this comment gives some interesting indication.
> +#define OMAP2_32KSYNCNT_REV_OFF 0x0
> +#define OMAP2_32KSYNCNT_REV_SCHEME (0x3 << 30)
> +#define OMAP2_32KSYNCNT_CR_OFF_LOW 0x10
> +#define OMAP2_32KSYNCNT_CR_OFF_HIGH 0x30
> +
> +/*
> + * 32KHz clocksource ... always available, on pretty most chips except
> + * OMAP 730 and 1510. Other timers could be used as clocksources, with
> + * higher resolution in free-running counter modes (e.g. 12 MHz xtal),
> + * but systems won't necessarily want to spend resources that way.
> + */
> +static void __iomem *sync32k_cnt_reg;
> +
> +/**
> + * omap_read_persistent_clock64 - Return time from a persistent clock.
> + *
> + * Reads the time from a source which isn't disabled during PM, the
> + * 32k sync timer. Convert the cycles elapsed since last read into
> + * nsecs and adds to a monotonically increasing timespec64.
> + */
This comment above should be moved right before the function it
describes and in order to comply with the kernel-doc format the
parameters must be documented also:
...
* @ts: ....
...
> +static struct timespec64 persistent_ts;
> +static cycles_t cycles;
> +static unsigned int persistent_mult, persistent_shift;
> +
> +static u64 notrace omap_32k_read_sched_clock(void)
> +{
> + return readl_relaxed(sync32k_cnt_reg);
> +}
> +
> +static void omap_read_persistent_clock64(struct timespec64 *ts)
> +{
> + unsigned long long nsecs;
> + cycles_t last_cycles;
> +
> + last_cycles = cycles;
> + cycles = sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0;
This test is pointless because 'sync32k_cnt_reg' is always different
from zero regarding the init routine, no ?
> +
> + nsecs = clocksource_cyc2ns(cycles - last_cycles,
> + persistent_mult, persistent_shift);
> +
> + timespec64_add_ns(&persistent_ts, nsecs);
> +
> + *ts = persistent_ts;
> +}
> +
> +static void __init ti_32k_timer_init(struct device_node *np)
> +{
> + void __iomem *vbase;
> + int ret;
> +
> + vbase = of_iomap(np, 0);
> + if (!vbase) {
> + pr_err("Can't ioremap 32k timer base\n");
> + return;
> + }
> +
> + /*
> + * 32k sync Counter IP register offsets vary between the
> + * highlander version and the legacy ones.
> + * The 'SCHEME' bits(30-31) of the revision register is used
> + * to identify the version.
> + */
Please fix comment length.
> + if (readl_relaxed(vbase + OMAP2_32KSYNCNT_REV_OFF) &
> + OMAP2_32KSYNCNT_REV_SCHEME)
> + sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_HIGH;
> + else
> + sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_LOW;
> +
> + /*
> + * 120000 rough estimate from the calculations in
> + * __clocksource_update_freq_scale.
> + */
Fix comment length also.
> + clocks_calc_mult_shift(&persistent_mult, &persistent_shift,
> + 32768, NSEC_PER_SEC, 120000);
> +
> + ret = clocksource_mmio_init(sync32k_cnt_reg, "32k_counter", 32768,
> + 250, 32, clocksource_mmio_readl_up);
> + if (ret) {
> + pr_err("32k_counter: can't register clocksource\n");
> + return;
> + }
> +
> + sched_clock_register(omap_32k_read_sched_clock, 32, 32768);
> + register_persistent_clock(NULL, omap_read_persistent_clock64);
I will let John Stultz to have a look at this part because I have doubt
regarding the usage of the persistent clock.
-- 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: [RFC/PATCH 09/11] clocksource: add TI 32.768 Hz counter driver
Date: Thu, 1 Oct 2015 23:59:52 +0200 [thread overview]
Message-ID: <560DACD8.8000301@linaro.org> (raw)
In-Reply-To: <1443559446-26969-10-git-send-email-balbi@ti.com>
Hi Felipe,
On 09/29/2015 10:44 PM, Felipe Balbi wrote:
> Introduce a new clocksource driver for Texas
> Instruments 32.768 Hz device which is available
> on most OMAP-like devices.
>
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
[ ... ]
> +config CLKSRC_TI_32K
> + bool "Texas Instruments 32.768 Hz Clocksource"
> + depends on OF && ARCH_OMAP2PLUS
> + select CLKSRC_OF
> + help
> + This option enables support for Texas Instruments 32.768 Hz clocksource
> + available on many OMAP-like platforms.
> +
It is the omap's Kconfig which should select the timer, not the user to
enable the timer.
It should be something like:
config CLKSRC_TI_32K
bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST
select CLKSRC_OF if OF
help
This option enables support for Texas Instruments 32.768 Hz
clocksource available on many OMAP-like platforms.
And in the omap's Kconfig:
select CLKSRC_TI_32K
> config CLKSRC_STM32
> bool "Clocksource for STM32 SoCs" if !ARCH_STM32
> depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST)
> diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile
> index 5c00863c3e33..749abc3665b3 100644
> --- a/drivers/clocksource/Makefile
> +++ b/drivers/clocksource/Makefile
> @@ -45,6 +45,7 @@ obj-$(CONFIG_VF_PIT_TIMER) += vf_pit_timer.o
> obj-$(CONFIG_CLKSRC_QCOM) += qcom-timer.o
> obj-$(CONFIG_MTK_TIMER) += mtk_timer.o
> obj-$(CONFIG_CLKSRC_PISTACHIO) += time-pistachio.o
> +obj-$(CONFIG_CLKSRC_TI_32K) += timer-ti-32k.o
>
> obj-$(CONFIG_ARM_ARCH_TIMER) += arm_arch_timer.o
> obj-$(CONFIG_ARM_GLOBAL_TIMER) += arm_global_timer.o
> diff --git a/drivers/clocksource/timer-ti-32k.c b/drivers/clocksource/timer-ti-32k.c
> new file mode 100644
> index 000000000000..10ccce2eb645
> --- /dev/null
> +++ b/drivers/clocksource/timer-ti-32k.c
> @@ -0,0 +1,121 @@
> +/**
> + * timer-ti-32k.c - OMAP2 32k Timer Support
> + *
> + * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com
> + *
> + * This program is free software: you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 of
> + * the License as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program. If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#include <linux/init.h>
> +#include <linux/time.h>
> +#include <linux/interrupt.h>
> +#include <linux/err.h>
> +#include <linux/irq.h>
> +#include <linux/sched_clock.h>
> +#include <linux/clocksource.h>
> +#include <linux/slab.h>
> +#include <linux/of.h>
> +#include <linux/of_address.h>
> +#include <linux/of_irq.h>
> +
> +#include <asm/mach/time.h>
Can you check all these headers are needed ? I don't think interrupt.h,
or slab.h or irq.h, etc ... are needed.
A few nits below:
> +/* OMAP2_32KSYNCNT_CR_OFF: offset of 32ksync counter register */
I am not sure this comment gives some interesting indication.
> +#define OMAP2_32KSYNCNT_REV_OFF 0x0
> +#define OMAP2_32KSYNCNT_REV_SCHEME (0x3 << 30)
> +#define OMAP2_32KSYNCNT_CR_OFF_LOW 0x10
> +#define OMAP2_32KSYNCNT_CR_OFF_HIGH 0x30
> +
> +/*
> + * 32KHz clocksource ... always available, on pretty most chips except
> + * OMAP 730 and 1510. Other timers could be used as clocksources, with
> + * higher resolution in free-running counter modes (e.g. 12 MHz xtal),
> + * but systems won't necessarily want to spend resources that way.
> + */
> +static void __iomem *sync32k_cnt_reg;
> +
> +/**
> + * omap_read_persistent_clock64 - Return time from a persistent clock.
> + *
> + * Reads the time from a source which isn't disabled during PM, the
> + * 32k sync timer. Convert the cycles elapsed since last read into
> + * nsecs and adds to a monotonically increasing timespec64.
> + */
This comment above should be moved right before the function it
describes and in order to comply with the kernel-doc format the
parameters must be documented also:
...
* @ts: ....
...
> +static struct timespec64 persistent_ts;
> +static cycles_t cycles;
> +static unsigned int persistent_mult, persistent_shift;
> +
> +static u64 notrace omap_32k_read_sched_clock(void)
> +{
> + return readl_relaxed(sync32k_cnt_reg);
> +}
> +
> +static void omap_read_persistent_clock64(struct timespec64 *ts)
> +{
> + unsigned long long nsecs;
> + cycles_t last_cycles;
> +
> + last_cycles = cycles;
> + cycles = sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0;
This test is pointless because 'sync32k_cnt_reg' is always different
from zero regarding the init routine, no ?
> +
> + nsecs = clocksource_cyc2ns(cycles - last_cycles,
> + persistent_mult, persistent_shift);
> +
> + timespec64_add_ns(&persistent_ts, nsecs);
> +
> + *ts = persistent_ts;
> +}
> +
> +static void __init ti_32k_timer_init(struct device_node *np)
> +{
> + void __iomem *vbase;
> + int ret;
> +
> + vbase = of_iomap(np, 0);
> + if (!vbase) {
> + pr_err("Can't ioremap 32k timer base\n");
> + return;
> + }
> +
> + /*
> + * 32k sync Counter IP register offsets vary between the
> + * highlander version and the legacy ones.
> + * The 'SCHEME' bits(30-31) of the revision register is used
> + * to identify the version.
> + */
Please fix comment length.
> + if (readl_relaxed(vbase + OMAP2_32KSYNCNT_REV_OFF) &
> + OMAP2_32KSYNCNT_REV_SCHEME)
> + sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_HIGH;
> + else
> + sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_LOW;
> +
> + /*
> + * 120000 rough estimate from the calculations in
> + * __clocksource_update_freq_scale.
> + */
Fix comment length also.
> + clocks_calc_mult_shift(&persistent_mult, &persistent_shift,
> + 32768, NSEC_PER_SEC, 120000);
> +
> + ret = clocksource_mmio_init(sync32k_cnt_reg, "32k_counter", 32768,
> + 250, 32, clocksource_mmio_readl_up);
> + if (ret) {
> + pr_err("32k_counter: can't register clocksource\n");
> + return;
> + }
> +
> + sched_clock_register(omap_32k_read_sched_clock, 32, 32768);
> + register_persistent_clock(NULL, omap_read_persistent_clock64);
I will let John Stultz to have a look at this part because I have doubt
regarding the usage of the persistent clock.
-- 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-10-01 21:59 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 [this message]
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
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=560DACD8.8000301@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=balbi@ti.com \
--cc=john.stultz@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.