xref: /openbmc/linux/arch/ia64/kernel/irq_lsapic.c (revision c0ad90a32fb60f4129d0e24dfd5fd7128e2e09f2)
11da177e4SLinus Torvalds /*
21da177e4SLinus Torvalds  * LSAPIC Interrupt Controller
31da177e4SLinus Torvalds  *
41da177e4SLinus Torvalds  * This takes care of interrupts that are generated by the CPU's
51da177e4SLinus Torvalds  * internal Streamlined Advanced Programmable Interrupt Controller
61da177e4SLinus Torvalds  * (LSAPIC), such as the ITC and IPI interrupts.
71da177e4SLinus Torvalds     *
81da177e4SLinus Torvalds  * Copyright (C) 1999 VA Linux Systems
91da177e4SLinus Torvalds  * Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
101da177e4SLinus Torvalds  * Copyright (C) 2000 Hewlett-Packard Co
111da177e4SLinus Torvalds  * Copyright (C) 2000 David Mosberger-Tang <davidm@hpl.hp.com>
121da177e4SLinus Torvalds  */
131da177e4SLinus Torvalds 
141da177e4SLinus Torvalds #include <linux/sched.h>
151da177e4SLinus Torvalds #include <linux/irq.h>
161da177e4SLinus Torvalds 
171da177e4SLinus Torvalds static unsigned int
181da177e4SLinus Torvalds lsapic_noop_startup (unsigned int irq)
191da177e4SLinus Torvalds {
201da177e4SLinus Torvalds 	return 0;
211da177e4SLinus Torvalds }
221da177e4SLinus Torvalds 
231da177e4SLinus Torvalds static void
241da177e4SLinus Torvalds lsapic_noop (unsigned int irq)
251da177e4SLinus Torvalds {
261da177e4SLinus Torvalds 	/* nuthing to do... */
271da177e4SLinus Torvalds }
281da177e4SLinus Torvalds 
29*c0ad90a3SIngo Molnar static int lsapic_retrigger(unsigned int irq)
30*c0ad90a3SIngo Molnar {
31*c0ad90a3SIngo Molnar 	ia64_resend_irq(irq);
32*c0ad90a3SIngo Molnar 
33*c0ad90a3SIngo Molnar 	return 1;
34*c0ad90a3SIngo Molnar }
35*c0ad90a3SIngo Molnar 
361da177e4SLinus Torvalds struct hw_interrupt_type irq_type_ia64_lsapic = {
371da177e4SLinus Torvalds 	.typename =	"LSAPIC",
381da177e4SLinus Torvalds 	.startup =	lsapic_noop_startup,
391da177e4SLinus Torvalds 	.shutdown =	lsapic_noop,
401da177e4SLinus Torvalds 	.enable =	lsapic_noop,
411da177e4SLinus Torvalds 	.disable =	lsapic_noop,
421da177e4SLinus Torvalds 	.ack =		lsapic_noop,
43*c0ad90a3SIngo Molnar 	.end =		lsapic_noop,
44*c0ad90a3SIngo Molnar 	.retrigger =	lsapic_retrigger,
451da177e4SLinus Torvalds };
46