Commit d6444094 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

m68k: split heartbeat out of timer function



The heartbeat functionality is mostly separate from the
actual timer interrupt handling, and it is only used on
five platforms.

Split it out into a separate function and call that directly
from the timer irq on those platforms.

Reviewed-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Acked-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Tested-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 275e70e4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -480,6 +480,7 @@ static irqreturn_t ciab_timer_handler(int irq, void *dev_id)
	clk_total += jiffy_ticks;
	clk_offset = 0;
	timer_routine(0, NULL);
	timer_heartbeat();

	return IRQ_HANDLED;
}
+1 −0
Original line number Diff line number Diff line
@@ -173,6 +173,7 @@ irqreturn_t dn_timer_int(int irq, void *dev_id)
	volatile unsigned char x;

	timer_handler(irq, dev_id);
	timer_heartbeat();

	x = *(volatile unsigned char *)(apollo_timer + 3);
	x = *(volatile unsigned char *)(apollo_timer + 5);
+2 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include <linux/export.h>

#include <asm/atariints.h>
#include <asm/machdep.h>

DEFINE_SPINLOCK(rtc_lock);
EXPORT_SYMBOL_GPL(rtc_lock);
@@ -49,6 +50,7 @@ static irqreturn_t mfp_timer_c_handler(int irq, void *dev_id)
	} while (last_timer_count == 1);
	clk_total += INT_TICKS;
	timer_routine(0, NULL);
	timer_heartbeat();
	local_irq_restore(flags);

	return IRQ_HANDLED;
+1 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ static irqreturn_t hp300_tick(int irq, void *dev_id)
	clk_total += INTVAL;
	clk_offset = 0;
	timer_routine(0, NULL);
	timer_heartbeat();
	local_irq_restore(flags);

	/* Turn off the network and SCSI leds */
+7 −0
Original line number Diff line number Diff line
@@ -35,6 +35,13 @@ extern void (*mach_beep) (unsigned int, unsigned int);
/* Hardware clock functions */
extern void hw_timer_init(irq_handler_t handler);
extern unsigned long hw_timer_offset(void);
#ifdef CONFIG_HEARTBEAT
extern void timer_heartbeat(void);
#else
static inline void timer_heartbeat(void)
{
}
#endif

extern void config_BSP(char *command, int len);

Loading