From: Chander Kashyap <chander.kashyap@linaro.org> To: Mark Rutland <mark.rutland@arm.com> Cc: "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-samsung-soc@vger.kernel.org" <linux-samsung-soc@vger.kernel.org>, "linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>, "kgene.kim@samsung.com" <kgene.kim@samsung.com>, "t.figa@samsung.com" <t.figa@samsung.com>, "s.nawrocki@samsung.com" <s.nawrocki@samsung.com>, "thomas.ab@samsung.com" <thomas.ab@samsung.com> Subject: Re: [PATCH v2 08/10] clocksource: exynos_mct: use (request/free)_irq calls for local timer registration Date: Mon, 17 Jun 2013 15:59:23 +0530 [thread overview] Message-ID: <CANuQgHGAopvzomTkrNzzB6Xk-n9Ap9+VAPiEg9w8NLNFXJDn_A@mail.gmail.com> (raw) In-Reply-To: <20130617100152.GC6809@e106331-lin.cambridge.arm.com> On 17 June 2013 15:31, Mark Rutland <mark.rutland@arm.com> wrote: > On Fri, Jun 14, 2013 at 03:02:50PM +0100, Chander Kashyap wrote: >> Replace the (setup/remove)_irq calls for local timer registration with >> (request/free)_irq calls. This generalizes the local timer registration API. >> Suggested by Mark Rutland. >> >> Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org> >> Cc: Mark Rutland <mark.rutland@arm.com> >> >> Replace the (setup/remove)_irq calls for local timer registration with >> (request/free)_irq calls. This generalises the local timer registration API. >> >> Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org> > > This looks much nicer now. > > Acked-by: Mark Rutland <mark.rutland@arm.com> Thanks Mark. > >> --- >> drivers/clocksource/exynos_mct.c | 35 +++++++++-------------------------- >> 1 file changed, 9 insertions(+), 26 deletions(-) >> >> diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c >> index 662fcc0..a704804 100644 >> --- a/drivers/clocksource/exynos_mct.c >> +++ b/drivers/clocksource/exynos_mct.c >> @@ -400,18 +400,6 @@ static irqreturn_t exynos4_mct_tick_isr(int irq, void *dev_id) >> return IRQ_HANDLED; >> } >> >> -static struct irqaction mct_tick0_event_irq = { >> - .name = "mct_tick0_irq", >> - .flags = IRQF_TIMER | IRQF_NOBALANCING, >> - .handler = exynos4_mct_tick_isr, >> -}; >> - >> -static struct irqaction mct_tick1_event_irq = { >> - .name = "mct_tick1_irq", >> - .flags = IRQF_TIMER | IRQF_NOBALANCING, >> - .handler = exynos4_mct_tick_isr, >> -}; >> - >> static int __cpuinit exynos4_local_timer_setup(struct clock_event_device *evt) >> { >> struct mct_clock_event_device *mevt; >> @@ -435,16 +423,15 @@ static int __cpuinit exynos4_local_timer_setup(struct clock_event_device *evt) >> exynos4_mct_write(TICK_BASE_CNT, mevt->base + MCT_L_TCNTB_OFFSET); >> >> if (mct_int_type == MCT_INT_SPI) { >> - if (cpu == 0) { >> - mct_tick0_event_irq.dev_id = mevt; >> - evt->irq = mct_irqs[MCT_L0_IRQ]; >> - setup_irq(evt->irq, &mct_tick0_event_irq); >> - } else { >> - mct_tick1_event_irq.dev_id = mevt; >> - evt->irq = mct_irqs[MCT_L1_IRQ]; >> - setup_irq(evt->irq, &mct_tick1_event_irq); >> - irq_set_affinity(evt->irq, cpumask_of(1)); >> + evt->irq = mct_irqs[MCT_L0_IRQ + cpu]; >> + if (request_irq(evt->irq, exynos4_mct_tick_isr, >> + IRQF_TIMER | IRQF_NOBALANCING, >> + evt->name, mevt)) { >> + pr_err("exynos-mct: cannot register IRQ %d\n", >> + evt->irq); >> + return -EIO; >> } >> + irq_set_affinity(evt->irq, cpumask_of(cpu)); >> } else { >> enable_percpu_irq(mct_irqs[MCT_L0_IRQ], 0); >> } >> @@ -454,13 +441,9 @@ static int __cpuinit exynos4_local_timer_setup(struct clock_event_device *evt) >> >> static void exynos4_local_timer_stop(struct clock_event_device *evt) >> { >> - unsigned int cpu = smp_processor_id(); >> evt->set_mode(CLOCK_EVT_MODE_UNUSED, evt); >> if (mct_int_type == MCT_INT_SPI) >> - if (cpu == 0) >> - remove_irq(evt->irq, &mct_tick0_event_irq); >> - else >> - remove_irq(evt->irq, &mct_tick1_event_irq); >> + free_irq(evt->irq, this_cpu_ptr(&percpu_mct_tick)); >> else >> disable_percpu_irq(mct_irqs[MCT_L0_IRQ]); >> } >> -- >> 1.7.9.5 >> >> -- with warm regards, Chander Kashyap
WARNING: multiple messages have this Message-ID (diff)
From: chander.kashyap@linaro.org (Chander Kashyap) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 08/10] clocksource: exynos_mct: use (request/free)_irq calls for local timer registration Date: Mon, 17 Jun 2013 15:59:23 +0530 [thread overview] Message-ID: <CANuQgHGAopvzomTkrNzzB6Xk-n9Ap9+VAPiEg9w8NLNFXJDn_A@mail.gmail.com> (raw) In-Reply-To: <20130617100152.GC6809@e106331-lin.cambridge.arm.com> On 17 June 2013 15:31, Mark Rutland <mark.rutland@arm.com> wrote: > On Fri, Jun 14, 2013 at 03:02:50PM +0100, Chander Kashyap wrote: >> Replace the (setup/remove)_irq calls for local timer registration with >> (request/free)_irq calls. This generalizes the local timer registration API. >> Suggested by Mark Rutland. >> >> Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org> >> Cc: Mark Rutland <mark.rutland@arm.com> >> >> Replace the (setup/remove)_irq calls for local timer registration with >> (request/free)_irq calls. This generalises the local timer registration API. >> >> Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org> > > This looks much nicer now. > > Acked-by: Mark Rutland <mark.rutland@arm.com> Thanks Mark. > >> --- >> drivers/clocksource/exynos_mct.c | 35 +++++++++-------------------------- >> 1 file changed, 9 insertions(+), 26 deletions(-) >> >> diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c >> index 662fcc0..a704804 100644 >> --- a/drivers/clocksource/exynos_mct.c >> +++ b/drivers/clocksource/exynos_mct.c >> @@ -400,18 +400,6 @@ static irqreturn_t exynos4_mct_tick_isr(int irq, void *dev_id) >> return IRQ_HANDLED; >> } >> >> -static struct irqaction mct_tick0_event_irq = { >> - .name = "mct_tick0_irq", >> - .flags = IRQF_TIMER | IRQF_NOBALANCING, >> - .handler = exynos4_mct_tick_isr, >> -}; >> - >> -static struct irqaction mct_tick1_event_irq = { >> - .name = "mct_tick1_irq", >> - .flags = IRQF_TIMER | IRQF_NOBALANCING, >> - .handler = exynos4_mct_tick_isr, >> -}; >> - >> static int __cpuinit exynos4_local_timer_setup(struct clock_event_device *evt) >> { >> struct mct_clock_event_device *mevt; >> @@ -435,16 +423,15 @@ static int __cpuinit exynos4_local_timer_setup(struct clock_event_device *evt) >> exynos4_mct_write(TICK_BASE_CNT, mevt->base + MCT_L_TCNTB_OFFSET); >> >> if (mct_int_type == MCT_INT_SPI) { >> - if (cpu == 0) { >> - mct_tick0_event_irq.dev_id = mevt; >> - evt->irq = mct_irqs[MCT_L0_IRQ]; >> - setup_irq(evt->irq, &mct_tick0_event_irq); >> - } else { >> - mct_tick1_event_irq.dev_id = mevt; >> - evt->irq = mct_irqs[MCT_L1_IRQ]; >> - setup_irq(evt->irq, &mct_tick1_event_irq); >> - irq_set_affinity(evt->irq, cpumask_of(1)); >> + evt->irq = mct_irqs[MCT_L0_IRQ + cpu]; >> + if (request_irq(evt->irq, exynos4_mct_tick_isr, >> + IRQF_TIMER | IRQF_NOBALANCING, >> + evt->name, mevt)) { >> + pr_err("exynos-mct: cannot register IRQ %d\n", >> + evt->irq); >> + return -EIO; >> } >> + irq_set_affinity(evt->irq, cpumask_of(cpu)); >> } else { >> enable_percpu_irq(mct_irqs[MCT_L0_IRQ], 0); >> } >> @@ -454,13 +441,9 @@ static int __cpuinit exynos4_local_timer_setup(struct clock_event_device *evt) >> >> static void exynos4_local_timer_stop(struct clock_event_device *evt) >> { >> - unsigned int cpu = smp_processor_id(); >> evt->set_mode(CLOCK_EVT_MODE_UNUSED, evt); >> if (mct_int_type == MCT_INT_SPI) >> - if (cpu == 0) >> - remove_irq(evt->irq, &mct_tick0_event_irq); >> - else >> - remove_irq(evt->irq, &mct_tick1_event_irq); >> + free_irq(evt->irq, this_cpu_ptr(&percpu_mct_tick)); >> else >> disable_percpu_irq(mct_irqs[MCT_L0_IRQ]); >> } >> -- >> 1.7.9.5 >> >> -- with warm regards, Chander Kashyap
next prev parent reply other threads:[~2013-06-17 10:29 UTC|newest] Thread overview: 128+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-06-06 11:01 [PATCH 01/13] ARM: Exynos: initialize l2x0 cache controller only for cortex-a9 based SoCs Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-06 11:01 ` [PATCH 02/13] ARM: Exynos: fix secondary cpu power control register address calculation Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-08 11:05 ` Tomasz Figa 2013-06-08 11:05 ` Tomasz Figa 2013-06-11 13:46 ` Chander Kashyap 2013-06-11 13:46 ` Chander Kashyap 2013-06-06 11:01 ` [PATCH 03/13] ARM: dts: fork out common Exynos5 nodes Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-06 11:14 ` Sachin Kamat 2013-06-06 11:14 ` Sachin Kamat 2013-06-08 11:12 ` Tomasz Figa 2013-06-08 11:12 ` Tomasz Figa 2013-06-11 13:49 ` Chander Kashyap 2013-06-11 13:49 ` Chander Kashyap 2013-06-06 11:01 ` [PATCH 04/13] ARM: dts: list the CPU nodes for Exynos5250 Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-06 16:54 ` Mark Rutland 2013-06-06 16:54 ` Mark Rutland 2013-06-10 9:18 ` Chander Kashyap 2013-06-10 9:18 ` Chander Kashyap 2013-06-08 11:16 ` Tomasz Figa 2013-06-08 11:16 ` Tomasz Figa 2013-06-10 9:18 ` Chander Kashyap 2013-06-10 9:18 ` Chander Kashyap 2013-06-06 11:01 ` [PATCH 05/13] ARM: Exynos: Add support for Exynos5420 SoC Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-06 11:01 ` [PATCH 06/13] serial: samsung: add support for Exynos5420 Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-06 11:35 ` Girish KS 2013-06-06 11:35 ` Girish KS 2013-06-10 9:05 ` Chander Kashyap 2013-06-10 9:05 ` Chander Kashyap 2013-06-06 11:01 ` [PATCH 07/13] ARM: Exynos: use four additional chipid bits to identify Exynos family Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-06 11:01 ` [PATCH 08/13] irqchip: exynos-combiner: set irq base as 256 for Exynos5420 Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-08 11:24 ` Tomasz Figa 2013-06-08 11:24 ` Tomasz Figa 2013-06-06 11:01 ` [PATCH 09/13] clk: exynos5420: register clocks using common clock framework Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-08 11:25 ` Tomasz Figa 2013-06-08 11:25 ` Tomasz Figa 2013-06-11 13:22 ` Chander Kashyap 2013-06-11 13:22 ` Chander Kashyap 2013-06-10 11:12 ` sunil joshi 2013-06-10 11:12 ` sunil joshi 2013-06-11 13:23 ` Chander Kashyap 2013-06-11 13:23 ` Chander Kashyap 2013-06-12 21:17 ` Tomasz Figa 2013-06-12 21:17 ` Tomasz Figa 2013-06-12 21:32 ` Andrew Bresticker 2013-06-12 21:32 ` Andrew Bresticker 2013-06-13 5:18 ` Chander Kashyap 2013-06-13 5:18 ` Chander Kashyap 2013-06-06 11:01 ` [PATCH 10/13] ARM: dts: Add initial device tree support for Exynos5420 Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-06 16:34 ` Mark Rutland 2013-06-06 16:34 ` Mark Rutland 2013-06-11 13:35 ` Chander Kashyap 2013-06-11 13:35 ` Chander Kashyap 2013-06-11 14:11 ` Mark Rutland 2013-06-11 14:11 ` Mark Rutland 2013-06-12 5:35 ` Subash Patel 2013-06-12 5:35 ` Subash Patel 2013-06-08 11:38 ` Tomasz Figa 2013-06-08 11:38 ` Tomasz Figa 2013-06-14 13:54 ` Chander Kashyap 2013-06-14 13:54 ` Chander Kashyap 2013-06-14 14:02 ` [PATCH v2 00/10] ARM: Exynos: Add Exynos5420 SoC support Chander Kashyap 2013-06-14 14:02 ` Chander Kashyap 2013-06-14 14:02 ` [PATCH v2 01/10] ARM: dts: fork out common Exynos5 nodes Chander Kashyap 2013-06-14 14:02 ` Chander Kashyap 2013-06-14 14:02 ` [PATCH v2 02/10] ARM: dts: list the CPU nodes for Exynos5250 Chander Kashyap 2013-06-14 14:02 ` Chander Kashyap 2013-06-14 14:02 ` [PATCH v2 03/10] ARM: Exynos: Add support for Exynos5420 SoC Chander Kashyap 2013-06-14 14:02 ` Chander Kashyap 2013-06-14 14:02 ` [PATCH v2 04/10] serial: samsung: select Exynos specific driver data if ARCH_EXYNOS is defined Chander Kashyap 2013-06-14 14:02 ` Chander Kashyap 2013-06-14 14:02 ` [PATCH v2 05/10] ARM: Exynos: use four additional chipid bits to identify Exynos family Chander Kashyap 2013-06-14 14:02 ` Chander Kashyap 2013-06-14 14:02 ` [PATCH v2 06/10] clk: exynos5420: register clocks using common clock framework Chander Kashyap 2013-06-14 14:02 ` Chander Kashyap 2013-06-14 17:26 ` Andrew Bresticker 2013-06-14 17:26 ` Andrew Bresticker 2013-06-17 8:46 ` Chander Kashyap 2013-06-17 8:46 ` Chander Kashyap 2013-06-14 14:02 ` [PATCH v2 07/10] ARM: dts: Add initial device tree support for Exynos5420 Chander Kashyap 2013-06-14 14:02 ` Chander Kashyap 2013-06-17 8:46 ` Mark Rutland 2013-06-17 8:46 ` Mark Rutland [not found] ` <CAGOxZ51H_dtZN3Nx-=qU+gjHAEwgPA--SZrdiu-sBCANhdKtAw@mail.gmail.com> 2013-06-17 11:08 ` Chander Kashyap 2013-06-17 11:08 ` Chander Kashyap 2013-06-14 14:02 ` [PATCH v2 08/10] clocksource: exynos_mct: use (request/free)_irq calls for local timer registration Chander Kashyap 2013-06-14 14:02 ` Chander Kashyap 2013-06-17 10:01 ` Mark Rutland 2013-06-17 10:01 ` Mark Rutland 2013-06-17 10:29 ` Chander Kashyap [this message] 2013-06-17 10:29 ` Chander Kashyap 2013-06-14 14:02 ` [PATCH v2 09/10] ARM: Exynos: add secondary CPU boot base location for Exynos5420 Chander Kashyap 2013-06-14 14:02 ` Chander Kashyap 2013-06-14 14:02 ` [PATCH v2 10/10] ARM: Exynos: extend soft-reset support " Chander Kashyap 2013-06-14 14:02 ` Chander Kashyap 2013-06-06 11:01 ` [PATCH 11/13] clocksource: exynos_mct: extend local timer support for four cores Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-06 16:50 ` Mark Rutland 2013-06-06 16:50 ` Mark Rutland 2013-06-08 11:39 ` Tomasz Figa 2013-06-08 11:39 ` Tomasz Figa 2013-06-11 13:26 ` Chander Kashyap 2013-06-11 13:26 ` Chander Kashyap 2013-06-06 11:01 ` [PATCH 12/13] ARM: Exynos: add secondary CPU boot base location for Exynos5420 Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-06 11:01 ` [PATCH 13/13] ARM: Exynos: extend soft-reset support " Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-06 11:44 ` Tushar Behera 2013-06-06 11:44 ` Tushar Behera 2013-06-10 8:54 ` Kukjin Kim 2013-06-10 8:54 ` Kukjin Kim 2013-06-11 13:24 ` Chander Kashyap 2013-06-11 13:24 ` Chander Kashyap 2013-06-06 11:01 ` [PATCH 00/13] add exynos5420 support Chander Kashyap 2013-06-06 11:01 ` Chander Kashyap 2013-06-08 10:57 ` [PATCH 01/13] ARM: Exynos: initialize l2x0 cache controller only for cortex-a9 based SoCs Tomasz Figa 2013-06-08 10:57 ` Tomasz Figa 2013-06-11 23:58 ` Olof Johansson 2013-06-11 23:58 ` Olof Johansson
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=CANuQgHGAopvzomTkrNzzB6Xk-n9Ap9+VAPiEg9w8NLNFXJDn_A@mail.gmail.com \ --to=chander.kashyap@linaro.org \ --cc=kgene.kim@samsung.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-samsung-soc@vger.kernel.org \ --cc=linux-serial@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=s.nawrocki@samsung.com \ --cc=t.figa@samsung.com \ --cc=thomas.ab@samsung.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: 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.