xref: /openbmc/linux/arch/ia64/kernel/irq_lsapic.c (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*b2441318SGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0
21da177e4SLinus Torvalds /*
31da177e4SLinus Torvalds  * LSAPIC Interrupt Controller
41da177e4SLinus Torvalds  *
51da177e4SLinus Torvalds  * This takes care of interrupts that are generated by the CPU's
61da177e4SLinus Torvalds  * internal Streamlined Advanced Programmable Interrupt Controller
71da177e4SLinus Torvalds  * (LSAPIC), such as the ITC and IPI interrupts.
81da177e4SLinus Torvalds     *
91da177e4SLinus Torvalds  * Copyright (C) 1999 VA Linux Systems
101da177e4SLinus Torvalds  * Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
111da177e4SLinus Torvalds  * Copyright (C) 2000 Hewlett-Packard Co
121da177e4SLinus Torvalds  * Copyright (C) 2000 David Mosberger-Tang <davidm@hpl.hp.com>
131da177e4SLinus Torvalds  */
141da177e4SLinus Torvalds 
151da177e4SLinus Torvalds #include <linux/sched.h>
161da177e4SLinus Torvalds #include <linux/irq.h>
171da177e4SLinus Torvalds 
181da177e4SLinus Torvalds static unsigned int
lsapic_noop_startup(struct irq_data * data)195c217b60SThomas Gleixner lsapic_noop_startup (struct irq_data *data)
201da177e4SLinus Torvalds {
211da177e4SLinus Torvalds 	return 0;
221da177e4SLinus Torvalds }
231da177e4SLinus Torvalds 
241da177e4SLinus Torvalds static void
lsapic_noop(struct irq_data * data)255c217b60SThomas Gleixner lsapic_noop (struct irq_data *data)
261da177e4SLinus Torvalds {
2772fdbdceSSimon Arlott 	/* nothing to do... */
281da177e4SLinus Torvalds }
291da177e4SLinus Torvalds 
lsapic_retrigger(struct irq_data * data)305c217b60SThomas Gleixner static int lsapic_retrigger(struct irq_data *data)
31c0ad90a3SIngo Molnar {
325c217b60SThomas Gleixner 	ia64_resend_irq(data->irq);
33c0ad90a3SIngo Molnar 
34c0ad90a3SIngo Molnar 	return 1;
35c0ad90a3SIngo Molnar }
36c0ad90a3SIngo Molnar 
37fb824f48SThomas Gleixner struct irq_chip irq_type_ia64_lsapic = {
3806344db3SIngo Molnar 	.name =			"LSAPIC",
395c217b60SThomas Gleixner 	.irq_startup =		lsapic_noop_startup,
405c217b60SThomas Gleixner 	.irq_shutdown =		lsapic_noop,
415c217b60SThomas Gleixner 	.irq_enable =		lsapic_noop,
425c217b60SThomas Gleixner 	.irq_disable =		lsapic_noop,
435c217b60SThomas Gleixner 	.irq_ack =		lsapic_noop,
445c217b60SThomas Gleixner 	.irq_retrigger =	lsapic_retrigger,
451da177e4SLinus Torvalds };
46