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 { 26*72fdbdceSSimon Arlott /* nothing to do... */ 271da177e4SLinus Torvalds } 281da177e4SLinus Torvalds 29c0ad90a3SIngo Molnar static int lsapic_retrigger(unsigned int irq) 30c0ad90a3SIngo Molnar { 31c0ad90a3SIngo Molnar ia64_resend_irq(irq); 32c0ad90a3SIngo Molnar 33c0ad90a3SIngo Molnar return 1; 34c0ad90a3SIngo Molnar } 35c0ad90a3SIngo Molnar 361da177e4SLinus Torvalds struct hw_interrupt_type irq_type_ia64_lsapic = { 3706344db3SIngo Molnar .name = "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, 43c0ad90a3SIngo Molnar .end = lsapic_noop, 44c0ad90a3SIngo Molnar .retrigger = lsapic_retrigger, 451da177e4SLinus Torvalds }; 46