Branch data Line data Source code
1 : : /*
2 : : * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar
3 : : * Copyright (C) 2005-2006, Thomas Gleixner, Russell King
4 : : *
5 : : * This file contains the dummy interrupt chip implementation
6 : : */
7 : : #include <linux/interrupt.h>
8 : : #include <linux/irq.h>
9 : : #include <linux/export.h>
10 : :
11 : : #include "internals.h"
12 : :
13 : : /*
14 : : * What should we do if we get a hw irq event on an illegal vector?
15 : : * Each architecture has to answer this themself.
16 : : */
17 : 0 : static void ack_bad(struct irq_data *data)
18 : : {
19 : : struct irq_desc *desc = irq_data_to_desc(data);
20 : :
21 : 0 : print_irq_desc(data->irq, desc);
22 : : ack_bad_irq(data->irq);
23 : 0 : }
24 : :
25 : : /*
26 : : * NOP functions
27 : : */
28 : 0 : static void noop(struct irq_data *data) { }
29 : :
30 : 0 : static unsigned int noop_ret(struct irq_data *data)
31 : : {
32 : 0 : return 0;
33 : : }
34 : :
35 : : /*
36 : : * Generic no controller implementation
37 : : */
38 : : struct irq_chip no_irq_chip = {
39 : : .name = "none",
40 : : .irq_startup = noop_ret,
41 : : .irq_shutdown = noop,
42 : : .irq_enable = noop,
43 : : .irq_disable = noop,
44 : : .irq_ack = ack_bad,
45 : : };
46 : :
47 : : /*
48 : : * Generic dummy implementation which can be used for
49 : : * real dumb interrupt sources
50 : : */
51 : : struct irq_chip dummy_irq_chip = {
52 : : .name = "dummy",
53 : : .irq_startup = noop_ret,
54 : : .irq_shutdown = noop,
55 : : .irq_enable = noop,
56 : : .irq_disable = noop,
57 : : .irq_ack = noop,
58 : : .irq_mask = noop,
59 : : .irq_unmask = noop,
60 : : };
61 : : EXPORT_SYMBOL_GPL(dummy_irq_chip);
|