From: Greg Ungerer Date: Thu, 26 Jul 2007 15:09:00 +0000 (+1000) Subject: m68knommu: use setup_irq() in ColdFire simple timer X-Git-Tag: v2.6.23-rc2~261 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c52a2cda561fd40543d839e8e0c75b6d964a67ad;p=linux-2.6 m68knommu: use setup_irq() in ColdFire simple timer Use setup_irq() instead of request_irq() to set up system timer in ColdFire simple timer code. With the old m68knommu irq code this was safe, but it is not now within the generic irq framework. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds --- diff --git a/arch/m68knommu/platform/5307/timers.c b/arch/m68knommu/platform/5307/timers.c index fb66eadd58..64bd0ff902 100644 --- a/arch/m68knommu/platform/5307/timers.c +++ b/arch/m68knommu/platform/5307/timers.c @@ -3,7 +3,7 @@ /* * timers.c -- generic ColdFire hardware timer support. * - * Copyright (C) 1999-2006, Greg Ungerer (gerg@snapgear.com) + * Copyright (C) 1999-2007, Greg Ungerer (gerg@snapgear.com) */ /***************************************************************************/ @@ -13,8 +13,8 @@ #include #include #include +#include #include -#include #include #include #include @@ -62,17 +62,24 @@ void coldfire_tick(void) /***************************************************************************/ +static struct irqaction coldfire_timer_irq = { + .name = "timer", + .flags = IRQF_DISABLED | IRQF_TIMER, +}; + static int ticks_per_intr; void coldfire_timer_init(irq_handler_t handler) { + coldfire_timer_irq.handler = handler; + setup_irq(mcf_timervector, &coldfire_timer_irq); + __raw_writew(MCFTIMER_TMR_DISABLE, TA(MCFTIMER_TMR)); ticks_per_intr = (MCF_BUSCLK / 16) / HZ; __raw_writetrr(ticks_per_intr - 1, TA(MCFTIMER_TRR)); __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR)); - request_irq(mcf_timervector, handler, IRQF_DISABLED, "timer", NULL); mcf_settimericr(1, mcf_timerlevel); #ifdef CONFIG_HIGHPROFILE