Commit 42f1d57f authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

m68k: change remaining timers to legacy_timer_tick



There are nine more machines that each have their own timer interrupt
calling the m68k timer_interrupt() function through an indirect pointer.

This function is now the same as legacy_timer_tick, so just call that
directly and select the corresponding Kconfig symbol.

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 09323308
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ config AMIGA
	bool "Amiga support"
	depends on MMU
	select MMU_MOTOROLA if MMU
	select LEGACY_TIMER_TICK
	help
	  This option enables support for the Amiga series of computers. If
	  you plan to use this kernel on an Amiga, say Y here and browse the
@@ -17,6 +18,7 @@ config ATARI
	depends on MMU
	select MMU_MOTOROLA if MMU
	select HAVE_ARCH_NVRAM_OPS
	select LEGACY_TIMER_TICK
	help
	  This option enables support for the 68000-based Atari series of
	  computers (including the TT, Falcon and Medusa). If you plan to use
@@ -28,6 +30,7 @@ config MAC
	depends on MMU
	select MMU_MOTOROLA if MMU
	select HAVE_ARCH_NVRAM_OPS
	select LEGACY_TIMER_TICK
	help
	  This option enables support for the Apple Macintosh series of
	  computers (yes, there is experimental support now, at least for part
@@ -40,6 +43,7 @@ config APOLLO
	bool "Apollo support"
	depends on MMU
	select MMU_MOTOROLA if MMU
	select LEGACY_TIMER_TICK
	help
	  Say Y here if you want to run Linux on an MC680x0-based Apollo
	  Domain workstation such as the DN3500.
@@ -58,6 +62,7 @@ config MVME147
	bool "MVME147 support"
	depends on MMU
	depends on VME
	select LEGACY_TIMER_TICK
	help
	  Say Y to include support for early Motorola VME boards.  This will
	  build a kernel which can run on MVME147 single-board computers.  If
@@ -68,6 +73,7 @@ config MVME16x
	bool "MVME162, 166 and 167 support"
	depends on MMU
	depends on VME
	select LEGACY_TIMER_TICK
	help
	  Say Y to include support for Motorola VME boards.  This will build a
	  kernel which can run on MVME162, MVME166, MVME167, MVME172, and
@@ -79,6 +85,7 @@ config BVME6000
	bool "BVME4000 and BVME6000 support"
	depends on MMU
	depends on VME
	select LEGACY_TIMER_TICK
	help
	  Say Y to include support for VME boards from BVM Ltd.  This will
	  build a kernel which can run on BVME4000 and BVME6000 boards.  If
@@ -89,6 +96,7 @@ config HP300
	bool "HP9000/300 and HP9000/400 support"
	depends on MMU
	select MMU_MOTOROLA if MMU
	select LEGACY_TIMER_TICK
	help
	  This option enables support for the HP9000/300 and HP9000/400 series
	  of workstations. Support for these machines is still somewhat
@@ -115,6 +123,7 @@ config Q40
	bool "Q40/Q60 support"
	depends on MMU
	select MMU_MOTOROLA if MMU
	select LEGACY_TIMER_TICK
	help
	  The Q40 is a Motorola 68040-based successor to the Sinclair QL
	  manufactured in Germany.  There is an official Q40 home page at
+2 −4
Original line number Diff line number Diff line
@@ -475,11 +475,9 @@ static u32 clk_total, clk_offset;

static irqreturn_t ciab_timer_handler(int irq, void *dev_id)
{
	irq_handler_t timer_routine = dev_id;

	clk_total += jiffy_ticks;
	clk_offset = 0;
	timer_routine(0, NULL);
	legacy_timer_tick(1);
	timer_heartbeat();

	return IRQ_HANDLED;
@@ -504,7 +502,7 @@ static void __init amiga_sched_init(irq_handler_t timer_routine)
	 * SCSI code. We'll have to take a look at this later
	 */
	if (request_irq(IRQ_AMIGA_CIAB_TA, ciab_timer_handler, IRQF_TIMER,
			"timer", timer_routine))
			"timer", NULL))
		pr_err("Couldn't register timer interrupt\n");
	/* start timer */
	ciab.cra |= 0x11;
+2 −4
Original line number Diff line number Diff line
@@ -168,11 +168,9 @@ void __init config_apollo(void)

irqreturn_t dn_timer_int(int irq, void *dev_id)
{
	irq_handler_t timer_handler = dev_id;

	volatile unsigned char x;

	timer_handler(irq, dev_id);
	legacy_timer_tick(1);
	timer_heartbeat();

	x = *(volatile unsigned char *)(apollo_timer + 3);
@@ -199,7 +197,7 @@ void dn_sched_init(irq_handler_t timer_routine)
		*(volatile unsigned char *)(apollo_timer + 0x3));
#endif

	if (request_irq(IRQ_APOLLO, dn_timer_int, 0, "time", timer_routine))
	if (request_irq(IRQ_APOLLO, dn_timer_int, 0, "time", NULL))
		pr_err("Couldn't register timer interrupt\n");
}

+2 −3
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@ static u8 last_timer_count;

static irqreturn_t mfp_timer_c_handler(int irq, void *dev_id)
{
	irq_handler_t timer_routine = dev_id;
	unsigned long flags;

	local_irq_save(flags);
@@ -49,7 +48,7 @@ static irqreturn_t mfp_timer_c_handler(int irq, void *dev_id)
		last_timer_count = st_mfp.tim_dt_c;
	} while (last_timer_count == 1);
	clk_total += INT_TICKS;
	timer_routine(0, NULL);
	legacy_timer_tick(1);
	timer_heartbeat();
	local_irq_restore(flags);

@@ -65,7 +64,7 @@ atari_sched_init(irq_handler_t timer_routine)
    st_mfp.tim_ct_cd = (st_mfp.tim_ct_cd & 15) | 0x60;
    /* install interrupt service routine for MFP Timer C */
    if (request_irq(IRQ_MFP_TIMC, mfp_timer_c_handler, IRQF_TIMER, "timer",
                    timer_routine))
                    NULL))
	pr_err("Couldn't register timer interrupt\n");

    clocksource_register_hz(&atari_clk, INT_CLK);
+2 −3
Original line number Diff line number Diff line
@@ -165,7 +165,6 @@ static u32 clk_total, clk_offset;

static irqreturn_t bvme6000_timer_int (int irq, void *dev_id)
{
    irq_handler_t timer_routine = dev_id;
    unsigned long flags;
    volatile RtcPtr_t rtc = (RtcPtr_t)BVME_RTC_BASE;
    unsigned char msr;
@@ -175,7 +174,7 @@ static irqreturn_t bvme6000_timer_int (int irq, void *dev_id)
    rtc->msr = msr | 0x20;		/* Ack the interrupt */
    clk_total += RTC_TIMER_CYCLES;
    clk_offset = 0;
    timer_routine(0, NULL);
    legacy_timer_tick(1);
    local_irq_restore(flags);

    return IRQ_HANDLED;
@@ -198,7 +197,7 @@ void bvme6000_sched_init (irq_handler_t timer_routine)
    rtc->msr = 0;	/* Ensure timer registers accessible */

    if (request_irq(BVME_IRQ_RTC, bvme6000_timer_int, IRQF_TIMER, "timer",
                    timer_routine))
                    NULL))
	panic ("Couldn't register timer int");

    rtc->t1cr_omr = 0x04;	/* Mode 2, ext clk */
Loading