Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/sh/kernel/localtimer.c
10817 views
1
/*
2
* Dummy local timer
3
*
4
* Copyright (C) 2008 Paul Mundt
5
*
6
* cloned from:
7
*
8
* linux/arch/arm/mach-realview/localtimer.c
9
*
10
* Copyright (C) 2002 ARM Ltd.
11
* All Rights Reserved
12
*
13
* This program is free software; you can redistribute it and/or modify
14
* it under the terms of the GNU General Public License version 2 as
15
* published by the Free Software Foundation.
16
*/
17
#include <linux/init.h>
18
#include <linux/kernel.h>
19
#include <linux/delay.h>
20
#include <linux/device.h>
21
#include <linux/smp.h>
22
#include <linux/jiffies.h>
23
#include <linux/percpu.h>
24
#include <linux/clockchips.h>
25
#include <linux/hardirq.h>
26
#include <linux/irq.h>
27
28
static DEFINE_PER_CPU(struct clock_event_device, local_clockevent);
29
30
/*
31
* Used on SMP for either the local timer or SMP_MSG_TIMER
32
*/
33
void local_timer_interrupt(void)
34
{
35
struct clock_event_device *clk = &__get_cpu_var(local_clockevent);
36
37
irq_enter();
38
clk->event_handler(clk);
39
irq_exit();
40
}
41
42
static void dummy_timer_set_mode(enum clock_event_mode mode,
43
struct clock_event_device *clk)
44
{
45
}
46
47
void local_timer_setup(unsigned int cpu)
48
{
49
struct clock_event_device *clk = &per_cpu(local_clockevent, cpu);
50
51
clk->name = "dummy_timer";
52
clk->features = CLOCK_EVT_FEAT_ONESHOT |
53
CLOCK_EVT_FEAT_PERIODIC |
54
CLOCK_EVT_FEAT_DUMMY;
55
clk->rating = 400;
56
clk->mult = 1;
57
clk->set_mode = dummy_timer_set_mode;
58
clk->broadcast = smp_timer_broadcast;
59
clk->cpumask = cpumask_of(cpu);
60
61
clockevents_register_device(clk);
62
}
63
64
void local_timer_stop(unsigned int cpu)
65
{
66
}
67
68