diff options
author | Arnd Bergmann <arnd@arndb.de> | 2020-09-24 16:40:58 +0200 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2020-10-30 21:57:06 +0100 |
commit | 4a1c287aabba8b3a8efbfb2381d95c38470ed171 (patch) | |
tree | db04e38bf3cbb0ee3a85b16316b601aa292a1959 | |
parent | d6444094042b4f4b4623dc1a2437f61309b9b34b (diff) |
m68k: sun3/sun3c: use legacy_timer_tick
These two are different from all other machines:
* sun3 does not call timer_routine() but open-codes it
except for the profile_tick() call that appears to
be unintentionally missing.
* sun3x has a commented-out timer irq handler but no
functional timer tick I could find.
Change both to calling the new legacy_timer_tick here,
which includes the call to profile_tick() but does not
fix sun3x as that is still commented out.
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r-- | arch/m68k/Kconfig.machine | 2 | ||||
-rw-r--r-- | arch/m68k/sun3/sun3ints.c | 3 | ||||
-rw-r--r-- | arch/m68k/sun3x/time.c | 3 |
3 files changed, 4 insertions, 4 deletions
diff --git a/arch/m68k/Kconfig.machine b/arch/m68k/Kconfig.machine index 17e8c3a292d7..e3c835440d9a 100644 --- a/arch/m68k/Kconfig.machine +++ b/arch/m68k/Kconfig.machine @@ -99,6 +99,7 @@ config HP300 config SUN3X bool "Sun3x support" depends on MMU + select LEGACY_TIMER_TICK select MMU_MOTOROLA if MMU select M68030 help @@ -126,6 +127,7 @@ config SUN3 depends on MMU depends on !MMU_MOTOROLA select MMU_SUN3 if MMU + select LEGACY_TIMER_TICK select NO_DMA select M68020 help diff --git a/arch/m68k/sun3/sun3ints.c b/arch/m68k/sun3/sun3ints.c index a5824abb4a39..41ae422119d3 100644 --- a/arch/m68k/sun3/sun3ints.c +++ b/arch/m68k/sun3/sun3ints.c @@ -73,8 +73,7 @@ static irqreturn_t sun3_int5(int irq, void *dev_id) #ifdef CONFIG_SUN3 intersil_clear(); #endif - xtime_update(1); - update_process_times(user_mode(get_irq_regs())); + legacy_timer_tick(1); cnt = kstat_irqs_cpu(irq, 0); if (!(cnt % 20)) sun3_leds(led_pattern[cnt % 160 / 20]); diff --git a/arch/m68k/sun3x/time.c b/arch/m68k/sun3x/time.c index 9163294b0fb6..f6e25fdc008c 100644 --- a/arch/m68k/sun3x/time.c +++ b/arch/m68k/sun3x/time.c @@ -77,14 +77,13 @@ int sun3x_hwclk(int set, struct rtc_time *t) #if 0 static irqreturn_t sun3x_timer_tick(int irq, void *dev_id) { - irq_handler_t timer_routine = dev_id; unsigned long flags; local_irq_save(flags); /* Clear the pending interrupt - pulse the enable line low */ disable_irq(5); enable_irq(5); - timer_routine(0, NULL); + legacy_timer_tick(1); local_irq_restore(flags); return IRQ_HANDLED; |