Discussion:
[uClinux-dev] [PATCH] m68knommu: fix 68360 local setting of timer interrupt handler
gerg
2012-06-08 05:27:45 UTC
Permalink
From: Greg Ungerer <gerg at uclinux.org>

Compiling for 68360 based targets fails with:

arch/m68k/platform/68360/config.c: In function ?hw_tick?:
arch/m68k/platform/68360/config.c:55:2: error: implicit declaration of function ?arch_timer_interrupt?
arch/m68k/platform/68360/config.c: At top level:
arch/m68k/platform/68360/config.c:64:6: error: conflicting types for ?hw_timer_init?
arch/m68k/include/asm/machdep.h:36:13: note: previous declaration of ?hw_timer_init? was here

Changes made to hw_timer_init() didn't get updated in the 68328 timer code.
So process and call the "handler" arg that is now passed into that
hw_timer_init() function.

Signed-off-by: Greg Ungerer <gerg at uclinux.org>
---
arch/m68k/platform/68360/config.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/m68k/platform/68360/config.c b/arch/m68k/platform/68360/config.c
index 255fc03..9877cef 100644
--- a/arch/m68k/platform/68360/config.c
+++ b/arch/m68k/platform/68360/config.c
@@ -35,6 +35,7 @@ extern void m360_cpm_reset(void);
#define OSCILLATOR (unsigned long int)33000000
#endif

+static irq_handler_t timer_interrupt;
unsigned long int system_clock;

extern QUICC *pquicc;
@@ -52,7 +53,7 @@ static irqreturn_t hw_tick(int irq, void *dummy)

pquicc->timer_ter1 = 0x0002; /* clear timer event */

- return arch_timer_interrupt(irq, dummy);
+ return timer_interrupt(irq, dummy);
}

static struct irqaction m68360_timer_irq = {
@@ -61,7 +62,7 @@ static struct irqaction m68360_timer_irq = {
.handler = hw_tick,
};

-void hw_timer_init(void)
+void hw_timer_init(irq_handler_t handler)
{
unsigned char prescaler;
unsigned short tgcr_save;
@@ -94,6 +95,8 @@ void hw_timer_init(void)

pquicc->timer_ter1 = 0x0003; /* clear timer events */

+ timer_interrupt = handler;
+
/* enable timer 1 interrupt in CIMR */
setup_irq(CPMVEC_TIMER1, &m68360_timer_irq);
--
1.7.0.4
Loading...