time.c (1136fa0c07de570dc17858745af8be169d1440ba) time.c (cc15ff3275694fedc33cd3d53212a43eec7aa0bc)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Common time routines among all ppc machines.
4 *
5 * Written by Cort Dougan (cort@cs.nmt.edu) to merge
6 * Paul Mackerras' version and mine for PReP and Pmac.
7 * MPC8xx/MBX changes by Dan Malek (dmalek@jlc.net).
8 * Converted for 64-bit by Mike Corrigan (mikejc@us.ibm.com)

--- 56 unchanged lines hidden (view full) ---

65#include <asm/time.h>
66#include <asm/prom.h>
67#include <asm/irq.h>
68#include <asm/div64.h>
69#include <asm/smp.h>
70#include <asm/vdso_datapage.h>
71#include <asm/firmware.h>
72#include <asm/asm-prototypes.h>
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Common time routines among all ppc machines.
4 *
5 * Written by Cort Dougan (cort@cs.nmt.edu) to merge
6 * Paul Mackerras' version and mine for PReP and Pmac.
7 * MPC8xx/MBX changes by Dan Malek (dmalek@jlc.net).
8 * Converted for 64-bit by Mike Corrigan (mikejc@us.ibm.com)

--- 56 unchanged lines hidden (view full) ---

65#include <asm/time.h>
66#include <asm/prom.h>
67#include <asm/irq.h>
68#include <asm/div64.h>
69#include <asm/smp.h>
70#include <asm/vdso_datapage.h>
71#include <asm/firmware.h>
72#include <asm/asm-prototypes.h>
73#include <asm/mce.h>
73
74/* powerpc clocksource/clockevent code */
75
76#include <linux/clockchips.h>
77#include <linux/timekeeper_internal.h>
78
79static u64 timebase_read(struct clocksource *);
80static struct clocksource clocksource_timebase = {

--- 552 unchanged lines hidden (view full) ---

633#endif
634
635 old_regs = set_irq_regs(regs);
636
637 trace_timer_interrupt_entry(regs);
638
639 if (test_irq_work_pending()) {
640 clear_irq_work_pending();
74
75/* powerpc clocksource/clockevent code */
76
77#include <linux/clockchips.h>
78#include <linux/timekeeper_internal.h>
79
80static u64 timebase_read(struct clocksource *);
81static struct clocksource clocksource_timebase = {

--- 552 unchanged lines hidden (view full) ---

634#endif
635
636 old_regs = set_irq_regs(regs);
637
638 trace_timer_interrupt_entry(regs);
639
640 if (test_irq_work_pending()) {
641 clear_irq_work_pending();
642 mce_run_irq_context_handlers();
641 irq_work_run();
642 }
643
644 now = get_tb();
645 if (now >= *next_tb) {
646 *next_tb = ~(u64)0;
647 if (evt->event_handler)
648 evt->event_handler(evt);

--- 478 unchanged lines hidden ---
643 irq_work_run();
644 }
645
646 now = get_tb();
647 if (now >= *next_tb) {
648 *next_tb = ~(u64)0;
649 if (evt->event_handler)
650 evt->event_handler(evt);

--- 478 unchanged lines hidden ---