From: Daniel Lezcano <daniel.lezcano@linaro.org> To: mingo@kernel.org Cc: tglx@linutronix.de, linux-kernel@vger.kernel.org, Viresh Kumar <viresh.kumar@linaro.org>, Nicolas Ferre <nicolas.ferre@atmel.com>, linux-arm-kernel@lists.infradead.org (moderated list:ATMEL Timer Count...) Subject: [PATCH 50/74] clockevents/drivers/tcb_clksrc: Migrate to new 'set-state' interface Date: Mon, 10 Aug 2015 11:52:07 +0200 [thread overview] Message-ID: <1439200352-26767-50-git-send-email-daniel.lezcano@linaro.org> (raw) In-Reply-To: <1439200352-26767-1-git-send-email-daniel.lezcano@linaro.org> From: Viresh Kumar <viresh.kumar@linaro.org> Migrate tcb_clksrc driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> --- drivers/clocksource/tcb_clksrc.c | 93 ++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 42 deletions(-) diff --git a/drivers/clocksource/tcb_clksrc.c b/drivers/clocksource/tcb_clksrc.c index 8bdbc45..d28d2fe 100644 --- a/drivers/clocksource/tcb_clksrc.c +++ b/drivers/clocksource/tcb_clksrc.c @@ -91,55 +91,62 @@ static struct tc_clkevt_device *to_tc_clkevt(struct clock_event_device *clkevt) */ static u32 timer_clock; -static void tc_mode(enum clock_event_mode m, struct clock_event_device *d) +static int tc_shutdown(struct clock_event_device *d) { struct tc_clkevt_device *tcd = to_tc_clkevt(d); void __iomem *regs = tcd->regs; - if (tcd->clkevt.mode == CLOCK_EVT_MODE_PERIODIC - || tcd->clkevt.mode == CLOCK_EVT_MODE_ONESHOT) { - __raw_writel(0xff, regs + ATMEL_TC_REG(2, IDR)); - __raw_writel(ATMEL_TC_CLKDIS, regs + ATMEL_TC_REG(2, CCR)); - clk_disable(tcd->clk); - } + __raw_writel(0xff, regs + ATMEL_TC_REG(2, IDR)); + __raw_writel(ATMEL_TC_CLKDIS, regs + ATMEL_TC_REG(2, CCR)); + clk_disable(tcd->clk); - switch (m) { + return 0; +} - /* By not making the gentime core emulate periodic mode on top - * of oneshot, we get lower overhead and improved accuracy. - */ - case CLOCK_EVT_MODE_PERIODIC: - clk_enable(tcd->clk); +static int tc_set_oneshot(struct clock_event_device *d) +{ + struct tc_clkevt_device *tcd = to_tc_clkevt(d); + void __iomem *regs = tcd->regs; - /* slow clock, count up to RC, then irq and restart */ - __raw_writel(timer_clock - | ATMEL_TC_WAVE | ATMEL_TC_WAVESEL_UP_AUTO, - regs + ATMEL_TC_REG(2, CMR)); - __raw_writel((32768 + HZ/2) / HZ, tcaddr + ATMEL_TC_REG(2, RC)); + if (clockevent_state_oneshot(d) || clockevent_state_periodic(d)) + tc_shutdown(d); - /* Enable clock and interrupts on RC compare */ - __raw_writel(ATMEL_TC_CPCS, regs + ATMEL_TC_REG(2, IER)); + clk_enable(tcd->clk); - /* go go gadget! */ - __raw_writel(ATMEL_TC_CLKEN | ATMEL_TC_SWTRG, - regs + ATMEL_TC_REG(2, CCR)); - break; + /* slow clock, count up to RC, then irq and stop */ + __raw_writel(timer_clock | ATMEL_TC_CPCSTOP | ATMEL_TC_WAVE | + ATMEL_TC_WAVESEL_UP_AUTO, regs + ATMEL_TC_REG(2, CMR)); + __raw_writel(ATMEL_TC_CPCS, regs + ATMEL_TC_REG(2, IER)); - case CLOCK_EVT_MODE_ONESHOT: - clk_enable(tcd->clk); + /* set_next_event() configures and starts the timer */ + return 0; +} - /* slow clock, count up to RC, then irq and stop */ - __raw_writel(timer_clock | ATMEL_TC_CPCSTOP - | ATMEL_TC_WAVE | ATMEL_TC_WAVESEL_UP_AUTO, - regs + ATMEL_TC_REG(2, CMR)); - __raw_writel(ATMEL_TC_CPCS, regs + ATMEL_TC_REG(2, IER)); +static int tc_set_periodic(struct clock_event_device *d) +{ + struct tc_clkevt_device *tcd = to_tc_clkevt(d); + void __iomem *regs = tcd->regs; - /* set_next_event() configures and starts the timer */ - break; + if (clockevent_state_oneshot(d) || clockevent_state_periodic(d)) + tc_shutdown(d); - default: - break; - } + /* By not making the gentime core emulate periodic mode on top + * of oneshot, we get lower overhead and improved accuracy. + */ + clk_enable(tcd->clk); + + /* slow clock, count up to RC, then irq and restart */ + __raw_writel(timer_clock | ATMEL_TC_WAVE | ATMEL_TC_WAVESEL_UP_AUTO, + regs + ATMEL_TC_REG(2, CMR)); + __raw_writel((32768 + HZ / 2) / HZ, tcaddr + ATMEL_TC_REG(2, RC)); + + /* Enable clock and interrupts on RC compare */ + __raw_writel(ATMEL_TC_CPCS, regs + ATMEL_TC_REG(2, IER)); + + /* go go gadget! */ + __raw_writel(ATMEL_TC_CLKEN | ATMEL_TC_SWTRG, regs + + ATMEL_TC_REG(2, CCR)); + return 0; } static int tc_next_event(unsigned long delta, struct clock_event_device *d) @@ -154,13 +161,15 @@ static int tc_next_event(unsigned long delta, struct clock_event_device *d) static struct tc_clkevt_device clkevt = { .clkevt = { - .name = "tc_clkevt", - .features = CLOCK_EVT_FEAT_PERIODIC - | CLOCK_EVT_FEAT_ONESHOT, + .name = "tc_clkevt", + .features = CLOCK_EVT_FEAT_PERIODIC | + CLOCK_EVT_FEAT_ONESHOT, /* Should be lower than at91rm9200's system timer */ - .rating = 125, - .set_next_event = tc_next_event, - .set_mode = tc_mode, + .rating = 125, + .set_next_event = tc_next_event, + .set_state_shutdown = tc_shutdown, + .set_state_periodic = tc_set_periodic, + .set_state_oneshot = tc_set_oneshot, }, }; -- 1.9.1
WARNING: multiple messages have this Message-ID (diff)
From: daniel.lezcano@linaro.org (Daniel Lezcano) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 50/74] clockevents/drivers/tcb_clksrc: Migrate to new 'set-state' interface Date: Mon, 10 Aug 2015 11:52:07 +0200 [thread overview] Message-ID: <1439200352-26767-50-git-send-email-daniel.lezcano@linaro.org> (raw) In-Reply-To: <1439200352-26767-1-git-send-email-daniel.lezcano@linaro.org> From: Viresh Kumar <viresh.kumar@linaro.org> Migrate tcb_clksrc driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> --- drivers/clocksource/tcb_clksrc.c | 93 ++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 42 deletions(-) diff --git a/drivers/clocksource/tcb_clksrc.c b/drivers/clocksource/tcb_clksrc.c index 8bdbc45..d28d2fe 100644 --- a/drivers/clocksource/tcb_clksrc.c +++ b/drivers/clocksource/tcb_clksrc.c @@ -91,55 +91,62 @@ static struct tc_clkevt_device *to_tc_clkevt(struct clock_event_device *clkevt) */ static u32 timer_clock; -static void tc_mode(enum clock_event_mode m, struct clock_event_device *d) +static int tc_shutdown(struct clock_event_device *d) { struct tc_clkevt_device *tcd = to_tc_clkevt(d); void __iomem *regs = tcd->regs; - if (tcd->clkevt.mode == CLOCK_EVT_MODE_PERIODIC - || tcd->clkevt.mode == CLOCK_EVT_MODE_ONESHOT) { - __raw_writel(0xff, regs + ATMEL_TC_REG(2, IDR)); - __raw_writel(ATMEL_TC_CLKDIS, regs + ATMEL_TC_REG(2, CCR)); - clk_disable(tcd->clk); - } + __raw_writel(0xff, regs + ATMEL_TC_REG(2, IDR)); + __raw_writel(ATMEL_TC_CLKDIS, regs + ATMEL_TC_REG(2, CCR)); + clk_disable(tcd->clk); - switch (m) { + return 0; +} - /* By not making the gentime core emulate periodic mode on top - * of oneshot, we get lower overhead and improved accuracy. - */ - case CLOCK_EVT_MODE_PERIODIC: - clk_enable(tcd->clk); +static int tc_set_oneshot(struct clock_event_device *d) +{ + struct tc_clkevt_device *tcd = to_tc_clkevt(d); + void __iomem *regs = tcd->regs; - /* slow clock, count up to RC, then irq and restart */ - __raw_writel(timer_clock - | ATMEL_TC_WAVE | ATMEL_TC_WAVESEL_UP_AUTO, - regs + ATMEL_TC_REG(2, CMR)); - __raw_writel((32768 + HZ/2) / HZ, tcaddr + ATMEL_TC_REG(2, RC)); + if (clockevent_state_oneshot(d) || clockevent_state_periodic(d)) + tc_shutdown(d); - /* Enable clock and interrupts on RC compare */ - __raw_writel(ATMEL_TC_CPCS, regs + ATMEL_TC_REG(2, IER)); + clk_enable(tcd->clk); - /* go go gadget! */ - __raw_writel(ATMEL_TC_CLKEN | ATMEL_TC_SWTRG, - regs + ATMEL_TC_REG(2, CCR)); - break; + /* slow clock, count up to RC, then irq and stop */ + __raw_writel(timer_clock | ATMEL_TC_CPCSTOP | ATMEL_TC_WAVE | + ATMEL_TC_WAVESEL_UP_AUTO, regs + ATMEL_TC_REG(2, CMR)); + __raw_writel(ATMEL_TC_CPCS, regs + ATMEL_TC_REG(2, IER)); - case CLOCK_EVT_MODE_ONESHOT: - clk_enable(tcd->clk); + /* set_next_event() configures and starts the timer */ + return 0; +} - /* slow clock, count up to RC, then irq and stop */ - __raw_writel(timer_clock | ATMEL_TC_CPCSTOP - | ATMEL_TC_WAVE | ATMEL_TC_WAVESEL_UP_AUTO, - regs + ATMEL_TC_REG(2, CMR)); - __raw_writel(ATMEL_TC_CPCS, regs + ATMEL_TC_REG(2, IER)); +static int tc_set_periodic(struct clock_event_device *d) +{ + struct tc_clkevt_device *tcd = to_tc_clkevt(d); + void __iomem *regs = tcd->regs; - /* set_next_event() configures and starts the timer */ - break; + if (clockevent_state_oneshot(d) || clockevent_state_periodic(d)) + tc_shutdown(d); - default: - break; - } + /* By not making the gentime core emulate periodic mode on top + * of oneshot, we get lower overhead and improved accuracy. + */ + clk_enable(tcd->clk); + + /* slow clock, count up to RC, then irq and restart */ + __raw_writel(timer_clock | ATMEL_TC_WAVE | ATMEL_TC_WAVESEL_UP_AUTO, + regs + ATMEL_TC_REG(2, CMR)); + __raw_writel((32768 + HZ / 2) / HZ, tcaddr + ATMEL_TC_REG(2, RC)); + + /* Enable clock and interrupts on RC compare */ + __raw_writel(ATMEL_TC_CPCS, regs + ATMEL_TC_REG(2, IER)); + + /* go go gadget! */ + __raw_writel(ATMEL_TC_CLKEN | ATMEL_TC_SWTRG, regs + + ATMEL_TC_REG(2, CCR)); + return 0; } static int tc_next_event(unsigned long delta, struct clock_event_device *d) @@ -154,13 +161,15 @@ static int tc_next_event(unsigned long delta, struct clock_event_device *d) static struct tc_clkevt_device clkevt = { .clkevt = { - .name = "tc_clkevt", - .features = CLOCK_EVT_FEAT_PERIODIC - | CLOCK_EVT_FEAT_ONESHOT, + .name = "tc_clkevt", + .features = CLOCK_EVT_FEAT_PERIODIC | + CLOCK_EVT_FEAT_ONESHOT, /* Should be lower than at91rm9200's system timer */ - .rating = 125, - .set_next_event = tc_next_event, - .set_mode = tc_mode, + .rating = 125, + .set_next_event = tc_next_event, + .set_state_shutdown = tc_shutdown, + .set_state_periodic = tc_set_periodic, + .set_state_oneshot = tc_set_oneshot, }, }; -- 1.9.1
next prev parent reply other threads:[~2015-08-10 10:02 UTC|newest] Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-08-10 9:48 [PULL] clockevents changes for 4.3 Daniel Lezcano 2015-08-10 9:51 ` [PATCH 01/74] clockevents/drivers/arm_arch_timer: Migrate to new 'set-state' interface Daniel Lezcano 2015-08-10 9:51 ` [PATCH 02/74] clockevents/drivers/arm_global_timer: " Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` [PATCH 03/74] clockevents/drivers/bcm2835: " Daniel Lezcano 2015-08-11 15:31 ` Lee Jones 2015-08-10 9:51 ` [PATCH 04/74] clockevents/drivers/bcm_kona: " Daniel Lezcano 2015-08-12 19:30 ` Scott Branden 2015-08-10 9:51 ` [PATCH 05/74] clockevents/drivers/cs5535: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 06/74] clockevents/drivers/em_sti: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 07/74] clockevents/drivers/Kconfig: Replace USE_OF with OF Daniel Lezcano 2015-08-10 9:51 ` [PATCH 08/74] clockevents/drivers/exynos_mct: Remove unneeded container_of() Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` [PATCH 09/74] clockevents/drivers/sh_cmt: Remove obsolete sh-cmt-32-fast platform_device_id entry Daniel Lezcano 2015-08-10 9:51 ` [PATCH 10/74] clockevents/drivers/sh_cmt: Remove obsolete sh-cmt-48-gen2 " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 11/74] clockevents/drivers/asm9260: Migrate to new 'set-state' interface Daniel Lezcano 2015-08-10 9:51 ` [PATCH 12/74] clockevents/drivers/cadence_ttc: " Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` [PATCH 13/74] clockevents/drivers/clps711x: " Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` [PATCH 14/74] clockevents/drivers/dummy_timer: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 15/74] clockevents/drivers/dw_apb: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 16/74] clockevents/drivers/fsl_ftm: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 17/74] clockevents/drivers/i8253: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 18/74] clockevents/drivers/meson6: " Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` [PATCH 19/74] clockevents/drivers/metag_generic: " Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` [PATCH 20/74] clockevents/drivers/mips-gic: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 21/74] clockevents/drivers/moxart: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 22/74] clockevents/drivers/mtk: " Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` [PATCH 23/74] clockevents/drivers/mxs: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 24/74] clockevents/drivers/nomadik-mtu: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 25/74] clockevents/drivers/pxa: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 26/74] clockevents/drivers/qcom: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 27/74] clockevents/drivers/rockchip: " Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` [PATCH 28/74] clockevents/drivers/samsung_pwm: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 29/74] clockevents/drivers/sh_cmt: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 30/74] clockevents/drivers/sh_mtu2: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 31/74] clockevents/drivers/sh_tmu: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 32/74] clockevents/drivers/sun4i: " Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` [PATCH 33/74] clockevents/drivers/tegra20: " Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` [PATCH 34/74] clockevents/drivers/time-armada-370-xp: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 35/74] clockevents/drivers/efm32: " Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` [PATCH 36/74] clockevents/drivers/orion: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 37/74] clockevents/drivers/atlas7: " Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` [PATCH 38/74] clockevents/drivers/atmel: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 39/74] clockevents/drivers/atmel-st: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 40/74] clockevents/drivers/digicolor: " Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 9:51 ` [PATCH 41/74] clockevents/drivers/integrator: " Daniel Lezcano 2015-08-10 9:51 ` [PATCH 42/74] clockevents/drivers/keystone: " Daniel Lezcano 2015-08-10 9:51 ` Daniel Lezcano 2015-08-10 16:55 ` santosh.shilimkar 2015-08-10 16:55 ` santosh.shilimkar at oracle.com 2015-08-10 9:52 ` [PATCH 43/74] clockevents/drivers/prima2: " Daniel Lezcano 2015-08-10 9:52 ` Daniel Lezcano 2015-08-10 9:52 ` [PATCH 44/74] clockevents/drivers/stm32: " Daniel Lezcano 2015-08-10 9:52 ` Daniel Lezcano 2015-08-10 9:52 ` [PATCH 45/74] clockevents/drivers/sun5i: " Daniel Lezcano 2015-08-10 9:52 ` Daniel Lezcano 2015-08-10 9:52 ` [PATCH 46/74] clockevents/drivers/u300: " Daniel Lezcano 2015-08-10 9:52 ` Daniel Lezcano 2015-08-10 9:52 ` [PATCH 47/74] clockevents/drivers/vf_pit: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 48/74] clockevents/drivers/vt8500: " Daniel Lezcano 2015-08-10 9:52 ` Daniel Lezcano 2015-08-10 9:52 ` [PATCH 49/74] clockevents/drivers/zevio: " Daniel Lezcano 2015-08-10 9:52 ` Daniel Lezcano [this message] 2015-08-10 9:52 ` [PATCH 50/74] clockevents/drivers/tcb_clksrc: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 51/74] clockevents/drivers/exynos_mct: " Daniel Lezcano 2015-08-10 9:52 ` Daniel Lezcano 2015-08-10 9:52 ` Daniel Lezcano 2015-08-10 9:52 ` [PATCH 52/74] clockevents/drivers/dw_apb_timer: Add dynamic irq flag to the timer Daniel Lezcano 2015-08-10 9:52 ` [PATCH 53/74] clockevents/drivers/sh_cmt: Remove obsolete sh-cmt-48 platform_device_id entry Daniel Lezcano 2015-08-10 9:52 ` [PATCH 54/74] clockevents/drivers/timer-imx-gpt: Migrate to new 'set-state' interface Daniel Lezcano 2015-08-10 9:52 ` [PATCH 55/74] clockevents/drivers/timer-sp804: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 56/74] clockevents/drivers/timer-atmel-pit: Fix typo in structure initialization Daniel Lezcano 2015-08-10 9:52 ` [PATCH 57/74] clocksource/drivers/sh_tmu: Fix traceback spotted in -next Daniel Lezcano 2015-08-10 9:52 ` [PATCH 58/74] clockevents/drivers/h8300_timer8: Migrate to new 'set-state' interface Daniel Lezcano 2015-08-10 9:52 ` [PATCH 59/74] alpha/time: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 60/74] blackfin/time-ts: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 61/74] c6x/timer64: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 62/74] microblaze/timer: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 63/74] mn10300/cevt-mn10300: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 64/74] openrisc/time: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 65/74] powerpc/time: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 66/74] s390/time: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 67/74] score/time: " Daniel Lezcano 2015-08-16 17:04 ` Lennox Wu 2015-08-10 9:52 ` [PATCH 68/74] sh/localtimer: " Daniel Lezcano 2015-08-10 9:52 ` Daniel Lezcano 2015-08-10 9:52 ` [PATCH 69/74] sparc/time: " Daniel Lezcano 2015-08-10 9:52 ` Daniel Lezcano 2015-08-10 9:52 ` [PATCH 70/74] um/time: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 71/74] unicore/time: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 72/74] xtensa/time: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 73/74] kernel: broadcast-hrtimer: " Daniel Lezcano 2015-08-10 9:52 ` [PATCH 74/74] cris/time: " 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=1439200352-26767-50-git-send-email-daniel.lezcano@linaro.org \ --to=daniel.lezcano@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@kernel.org \ --cc=nicolas.ferre@atmel.com \ --cc=tglx@linutronix.de \ --cc=viresh.kumar@linaro.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: linkBe 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.