time.c (a4c5a355422920bcbfe3fd1f01aead2d3a2a820c) time.c (6601ec1c2ba929430f5585ce7f9d9960b0e0a01d)
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)

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

590 irq_enter();
591 trace_timer_interrupt_entry(regs);
592
593 if (test_irq_work_pending()) {
594 clear_irq_work_pending();
595 irq_work_run();
596 }
597
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)

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

590 irq_enter();
591 trace_timer_interrupt_entry(regs);
592
593 if (test_irq_work_pending()) {
594 clear_irq_work_pending();
595 irq_work_run();
596 }
597
598 now = get_tb_or_rtc();
598 now = get_tb();
599 if (now >= *next_tb) {
600 *next_tb = ~(u64)0;
601 if (evt->event_handler)
602 evt->event_handler(evt);
603 __this_cpu_inc(irq_stat.timer_irqs_event);
604 } else {
605 now = *next_tb - now;
606 if (now <= decrementer_max)

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

932
933 printk(KERN_INFO "clocksource: %s mult[%x] shift[%d] registered\n",
934 clock->name, clock->mult, clock->shift);
935}
936
937static int decrementer_set_next_event(unsigned long evt,
938 struct clock_event_device *dev)
939{
599 if (now >= *next_tb) {
600 *next_tb = ~(u64)0;
601 if (evt->event_handler)
602 evt->event_handler(evt);
603 __this_cpu_inc(irq_stat.timer_irqs_event);
604 } else {
605 now = *next_tb - now;
606 if (now <= decrementer_max)

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

932
933 printk(KERN_INFO "clocksource: %s mult[%x] shift[%d] registered\n",
934 clock->name, clock->mult, clock->shift);
935}
936
937static int decrementer_set_next_event(unsigned long evt,
938 struct clock_event_device *dev)
939{
940 __this_cpu_write(decrementers_next_tb, get_tb_or_rtc() + evt);
940 __this_cpu_write(decrementers_next_tb, get_tb() + evt);
941 set_dec(evt);
942
943 /* We may have raced with new irq work */
944 if (test_irq_work_pending())
945 set_dec(1);
946
947 return 0;
948}

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

1066 scale = res.result_low;
1067 for (shift = 0; res.result_high != 0; ++shift) {
1068 scale = (scale >> 1) | (res.result_high << 63);
1069 res.result_high >>= 1;
1070 }
1071 tb_to_ns_scale = scale;
1072 tb_to_ns_shift = shift;
1073 /* Save the current timebase to pretty up CONFIG_PRINTK_TIME */
941 set_dec(evt);
942
943 /* We may have raced with new irq work */
944 if (test_irq_work_pending())
945 set_dec(1);
946
947 return 0;
948}

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

1066 scale = res.result_low;
1067 for (shift = 0; res.result_high != 0; ++shift) {
1068 scale = (scale >> 1) | (res.result_high << 63);
1069 res.result_high >>= 1;
1070 }
1071 tb_to_ns_scale = scale;
1072 tb_to_ns_shift = shift;
1073 /* Save the current timebase to pretty up CONFIG_PRINTK_TIME */
1074 boot_tb = get_tb_or_rtc();
1074 boot_tb = get_tb();
1075
1076 /* If platform provided a timezone (pmac), we correct the time */
1077 if (timezone_offset) {
1078 sys_tz.tz_minuteswest = -timezone_offset / 60;
1079 sys_tz.tz_dsttime = 0;
1080 }
1081
1082 vdso_data->tb_update_count = 0;

--- 101 unchanged lines hidden ---
1075
1076 /* If platform provided a timezone (pmac), we correct the time */
1077 if (timezone_offset) {
1078 sys_tz.tz_minuteswest = -timezone_offset / 60;
1079 sys_tz.tz_dsttime = 0;
1080 }
1081
1082 vdso_data->tb_update_count = 0;

--- 101 unchanged lines hidden ---