xref: /openbmc/linux/arch/ia64/kernel/irq_lsapic.c (revision 06344db3)
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 (unsigned int irq)
19 {
20 	return 0;
21 }
22 
23 static void
24 lsapic_noop (unsigned int irq)
25 {
26 	/* nuthing to do... */
27 }
28 
29 static int lsapic_retrigger(unsigned int irq)
30 {
31 	ia64_resend_irq(irq);
32 
33 	return 1;
34 }
35 
36 struct hw_interrupt_type irq_type_ia64_lsapic = {
37 	.name =		"LSAPIC",
38 	.startup =	lsapic_noop_startup,
39 	.shutdown =	lsapic_noop,
40 	.enable =	lsapic_noop,
41 	.disable =	lsapic_noop,
42 	.ack =		lsapic_noop,
43 	.end =		lsapic_noop,
44 	.retrigger =	lsapic_retrigger,
45 };
46