diff options
author | Greg Ungerer <gerg@uclinux.org> | 2012-05-22 23:32:55 -0400 |
---|---|---|
committer | Greg Ungerer <gerg@uclinux.org> | 2012-06-11 21:58:28 -0400 |
commit | 1b461d7631f17804257ab1734bd95c05ab655f8b (patch) | |
tree | e911145cbddb755a9b181b0bf77e0137f3761f61 | |
parent | dc5588ae3c597006095926c25634408257457a8f (diff) |
m68knommu: fix 68360 local setting of timer interrupt handler
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@uclinux.org>
-rw-r--r-- | 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 255fc03913e9..9877cefad1e7 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); | |||
35 | #define OSCILLATOR (unsigned long int)33000000 | 35 | #define OSCILLATOR (unsigned long int)33000000 |
36 | #endif | 36 | #endif |
37 | 37 | ||
38 | static irq_handler_t timer_interrupt; | ||
38 | unsigned long int system_clock; | 39 | unsigned long int system_clock; |
39 | 40 | ||
40 | extern QUICC *pquicc; | 41 | extern QUICC *pquicc; |
@@ -52,7 +53,7 @@ static irqreturn_t hw_tick(int irq, void *dummy) | |||
52 | 53 | ||
53 | pquicc->timer_ter1 = 0x0002; /* clear timer event */ | 54 | pquicc->timer_ter1 = 0x0002; /* clear timer event */ |
54 | 55 | ||
55 | return arch_timer_interrupt(irq, dummy); | 56 | return timer_interrupt(irq, dummy); |
56 | } | 57 | } |
57 | 58 | ||
58 | static struct irqaction m68360_timer_irq = { | 59 | static struct irqaction m68360_timer_irq = { |
@@ -61,7 +62,7 @@ static struct irqaction m68360_timer_irq = { | |||
61 | .handler = hw_tick, | 62 | .handler = hw_tick, |
62 | }; | 63 | }; |
63 | 64 | ||
64 | void hw_timer_init(void) | 65 | void hw_timer_init(irq_handler_t handler) |
65 | { | 66 | { |
66 | unsigned char prescaler; | 67 | unsigned char prescaler; |
67 | unsigned short tgcr_save; | 68 | unsigned short tgcr_save; |
@@ -94,6 +95,8 @@ void hw_timer_init(void) | |||
94 | 95 | ||
95 | pquicc->timer_ter1 = 0x0003; /* clear timer events */ | 96 | pquicc->timer_ter1 = 0x0003; /* clear timer events */ |
96 | 97 | ||
98 | timer_interrupt = handler; | ||
99 | |||
97 | /* enable timer 1 interrupt in CIMR */ | 100 | /* enable timer 1 interrupt in CIMR */ |
98 | setup_irq(CPMVEC_TIMER1, &m68360_timer_irq); | 101 | setup_irq(CPMVEC_TIMER1, &m68360_timer_irq); |
99 | 102 | ||