xref: /openbmc/linux/arch/ia64/kernel/irq_lsapic.c (revision 70342287)
1 /*
2  * LSAPIC Interrupt Controller
3  *
4  * This takes care of interrupts that are generated by the CPU's
5  * internal Streamlined Advanced Programmable Interrupt Controller
6  * (LSAPIC), such as the ITC and IPI interrupts.
7     *
8  * Copyright (C) 1999 VA Linux Systems
9  * Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
10  * Copyright (C) 2000 Hewlett-Packard Co
11  * Copyright (C) 2000 David Mosberger-Tang <davidm@hpl.hp.com>
12  */
13 
14 #include <linux/sched.h>
15 #include <linux/irq.h>
16 
17 static unsigned int
18 lsapic_noop_startup (struct irq_data *data)
19 {
20 	return 0;
21 }
22 
23 static void
24 lsapic_noop (struct irq_data *data)
25 {
26 	/* nothing to do... */
27 }
28 
29 static int lsapic_retrigger(struct irq_data *data)
30 {
31 	ia64_resend_irq(data->irq);
32 
33 	return 1;
34 }
35 
36 struct irq_chip irq_type_ia64_lsapic = {
37 	.name =			"LSAPIC",
38 	.irq_startup =		lsapic_noop_startup,
39 	.irq_shutdown =		lsapic_noop,
40 	.irq_enable =		lsapic_noop,
41 	.irq_disable =		lsapic_noop,
42 	.irq_ack =		lsapic_noop,
43 	.irq_retrigger =	lsapic_retrigger,
44 };
45