Message ID | 20200301122112.3847-1-afzal.mohd.ma@gmail.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | 2164f34965f51ab24e27c429fa8cce7587a82583 |
Headers | show |
Series | [v3] ARM: ep93xx: Replace setup_irq() by request_irq() | expand |
Hi Afzal, Arnd, as there is no dedicated tree for EP93xx, could you please consider the below patch for your arm-soc tree? On 01/03/2020 13:21, afzal mohammed wrote: > request_irq() is preferred over setup_irq(). Invocations of setup_irq() > occur after memory allocators are ready. > > Per tglx[1], setup_irq() existed in olden days when allocators were not > ready by the time early interrupts were initialized. > > Hence replace setup_irq() by request_irq(). > > [1] https://lkml.kernel.org/r/alpine.DEB.2.20.1710191609480.1971@nanos > > Signed-off-by: afzal mohammed <afzal.mohd.ma@gmail.com> Acked-by: Alexander Sverdlin <alexander.sverdlin@gmail.com> > --- > Hi sub-arch maintainers, > > If the patch is okay, please take it thr' your tree. > > Regards > afzal > > v3: > * Split out from series, also create subarch level patch as Thomas > suggested to take it thr' respective maintainers > * Modify string displayed in case of error as suggested by Thomas > * Re-arrange code as required to improve readability > * Remove irrelevant parts from commit message & improve > > v2: > * Replace pr_err("request_irq() on %s failed" by > pr_err("%s: request_irq() failed" > * Commit message massage > > arch/arm/mach-ep93xx/timer-ep93xx.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/arch/arm/mach-ep93xx/timer-ep93xx.c b/arch/arm/mach-ep93xx/timer-ep93xx.c > index de998830f534..dd4b164d1831 100644 > --- a/arch/arm/mach-ep93xx/timer-ep93xx.c > +++ b/arch/arm/mach-ep93xx/timer-ep93xx.c > @@ -117,15 +117,11 @@ static irqreturn_t ep93xx_timer_interrupt(int irq, void *dev_id) > return IRQ_HANDLED; > } > > -static struct irqaction ep93xx_timer_irq = { > - .name = "ep93xx timer", > - .flags = IRQF_TIMER | IRQF_IRQPOLL, > - .handler = ep93xx_timer_interrupt, > - .dev_id = &ep93xx_clockevent, > -}; > - > void __init ep93xx_timer_init(void) > { > + int irq = IRQ_EP93XX_TIMER3; > + unsigned long flags = IRQF_TIMER | IRQF_IRQPOLL; > + > /* Enable and register clocksource and sched_clock on timer 4 */ > writel(EP93XX_TIMER4_VALUE_HIGH_ENABLE, > EP93XX_TIMER4_VALUE_HIGH); > @@ -136,7 +132,9 @@ void __init ep93xx_timer_init(void) > EP93XX_TIMER4_RATE); > > /* Set up clockevent on timer 3 */ > - setup_irq(IRQ_EP93XX_TIMER3, &ep93xx_timer_irq); > + if (request_irq(irq, ep93xx_timer_interrupt, flags, "ep93xx timer", > + &ep93xx_clockevent)) > + pr_err("Failed to request irq %d (ep93xx timer)\n", irq); > clockevents_config_and_register(&ep93xx_clockevent, > EP93XX_TIMER123_RATE, > 1, >
diff --git a/arch/arm/mach-ep93xx/timer-ep93xx.c b/arch/arm/mach-ep93xx/timer-ep93xx.c index de998830f534..dd4b164d1831 100644 --- a/arch/arm/mach-ep93xx/timer-ep93xx.c +++ b/arch/arm/mach-ep93xx/timer-ep93xx.c @@ -117,15 +117,11 @@ static irqreturn_t ep93xx_timer_interrupt(int irq, void *dev_id) return IRQ_HANDLED; } -static struct irqaction ep93xx_timer_irq = { - .name = "ep93xx timer", - .flags = IRQF_TIMER | IRQF_IRQPOLL, - .handler = ep93xx_timer_interrupt, - .dev_id = &ep93xx_clockevent, -}; - void __init ep93xx_timer_init(void) { + int irq = IRQ_EP93XX_TIMER3; + unsigned long flags = IRQF_TIMER | IRQF_IRQPOLL; + /* Enable and register clocksource and sched_clock on timer 4 */ writel(EP93XX_TIMER4_VALUE_HIGH_ENABLE, EP93XX_TIMER4_VALUE_HIGH); @@ -136,7 +132,9 @@ void __init ep93xx_timer_init(void) EP93XX_TIMER4_RATE); /* Set up clockevent on timer 3 */ - setup_irq(IRQ_EP93XX_TIMER3, &ep93xx_timer_irq); + if (request_irq(irq, ep93xx_timer_interrupt, flags, "ep93xx timer", + &ep93xx_clockevent)) + pr_err("Failed to request irq %d (ep93xx timer)\n", irq); clockevents_config_and_register(&ep93xx_clockevent, EP93XX_TIMER123_RATE, 1,
request_irq() is preferred over setup_irq(). Invocations of setup_irq() occur after memory allocators are ready. Per tglx[1], setup_irq() existed in olden days when allocators were not ready by the time early interrupts were initialized. Hence replace setup_irq() by request_irq(). [1] https://lkml.kernel.org/r/alpine.DEB.2.20.1710191609480.1971@nanos Signed-off-by: afzal mohammed <afzal.mohd.ma@gmail.com> --- Hi sub-arch maintainers, If the patch is okay, please take it thr' your tree. Regards afzal v3: * Split out from series, also create subarch level patch as Thomas suggested to take it thr' respective maintainers * Modify string displayed in case of error as suggested by Thomas * Re-arrange code as required to improve readability * Remove irrelevant parts from commit message & improve v2: * Replace pr_err("request_irq() on %s failed" by pr_err("%s: request_irq() failed" * Commit message massage arch/arm/mach-ep93xx/timer-ep93xx.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-)