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