Blame view

drivers/clocksource/dummy_timer.c 931 Bytes
d2912cb15   Thomas Gleixner   treewide: Replace...
1
  // SPDX-License-Identifier: GPL-2.0-only
064706514   Mark Rutland   clocksource: Add ...
2
3
4
5
6
  /*
   *  linux/drivers/clocksource/dummy_timer.c
   *
   *  Copyright (C) 2013 ARM Ltd.
   *  All Rights Reserved
064706514   Mark Rutland   clocksource: Add ...
7
8
9
10
11
12
13
14
   */
  #include <linux/clockchips.h>
  #include <linux/cpu.h>
  #include <linux/init.h>
  #include <linux/percpu.h>
  #include <linux/cpumask.h>
  
  static DEFINE_PER_CPU(struct clock_event_device, dummy_timer_evt);
00c1d17aa   Richard Cochran   clocksource/dummy...
15
  static int dummy_timer_starting_cpu(unsigned int cpu)
064706514   Mark Rutland   clocksource: Add ...
16
  {
00c1d17aa   Richard Cochran   clocksource/dummy...
17
  	struct clock_event_device *evt = per_cpu_ptr(&dummy_timer_evt, cpu);
064706514   Mark Rutland   clocksource: Add ...
18
19
20
21
22
23
  
  	evt->name	= "dummy_timer";
  	evt->features	= CLOCK_EVT_FEAT_PERIODIC |
  			  CLOCK_EVT_FEAT_ONESHOT |
  			  CLOCK_EVT_FEAT_DUMMY;
  	evt->rating	= 100;
064706514   Mark Rutland   clocksource: Add ...
24
25
26
  	evt->cpumask	= cpumask_of(cpu);
  
  	clockevents_register_device(evt);
00c1d17aa   Richard Cochran   clocksource/dummy...
27
  	return 0;
064706514   Mark Rutland   clocksource: Add ...
28
  }
064706514   Mark Rutland   clocksource: Add ...
29
30
  static int __init dummy_timer_register(void)
  {
00c1d17aa   Richard Cochran   clocksource/dummy...
31
  	return cpuhp_setup_state(CPUHP_AP_DUMMY_TIMER_STARTING,
73c1b41e6   Thomas Gleixner   cpu/hotplug: Clea...
32
  				 "clockevents/dummy_timer:starting",
00c1d17aa   Richard Cochran   clocksource/dummy...
33
  				 dummy_timer_starting_cpu, NULL);
064706514   Mark Rutland   clocksource: Add ...
34
35
  }
  early_initcall(dummy_timer_register);