Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b461d76 authored by Greg Ungerer's avatar Greg Ungerer
Browse files

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: default avatarGreg Ungerer <gerg@uclinux.org>
parent dc5588ae
Loading
Loading
Loading
Loading
+5 −2
Original line number Original line Diff line number Diff line
@@ -35,6 +35,7 @@ extern void m360_cpm_reset(void);
#define OSCILLATOR  (unsigned long int)33000000
#define OSCILLATOR  (unsigned long int)33000000
#endif
#endif


static irq_handler_t timer_interrupt;
unsigned long int system_clock;
unsigned long int system_clock;


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


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


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


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


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


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


  timer_interrupt = handler;

  /* enable timer 1 interrupt in CIMR */
  /* enable timer 1 interrupt in CIMR */
  setup_irq(CPMVEC_TIMER1, &m68360_timer_irq);
  setup_irq(CPMVEC_TIMER1, &m68360_timer_irq);