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 18*5c217b60SThomas Gleixner lsapic_noop_startup (struct irq_data *data) 191da177e4SLinus Torvalds { 201da177e4SLinus Torvalds return 0; 211da177e4SLinus Torvalds } 221da177e4SLinus Torvalds 231da177e4SLinus Torvalds static void 24*5c217b60SThomas Gleixner lsapic_noop (struct irq_data *data) 251da177e4SLinus Torvalds { 2672fdbdceSSimon Arlott /* nothing to do... */ 271da177e4SLinus Torvalds } 281da177e4SLinus Torvalds 29*5c217b60SThomas Gleixner static int lsapic_retrigger(struct irq_data *data) 30c0ad90a3SIngo Molnar { 31*5c217b60SThomas Gleixner ia64_resend_irq(data->irq); 32c0ad90a3SIngo Molnar 33c0ad90a3SIngo Molnar return 1; 34c0ad90a3SIngo Molnar } 35c0ad90a3SIngo Molnar 36fb824f48SThomas Gleixner struct irq_chip irq_type_ia64_lsapic = { 3706344db3SIngo Molnar .name = "LSAPIC", 38*5c217b60SThomas Gleixner .irq_startup = lsapic_noop_startup, 39*5c217b60SThomas Gleixner .irq_shutdown = lsapic_noop, 40*5c217b60SThomas Gleixner .irq_enable = lsapic_noop, 41*5c217b60SThomas Gleixner .irq_disable = lsapic_noop, 42*5c217b60SThomas Gleixner .irq_ack = lsapic_noop, 43*5c217b60SThomas Gleixner .irq_retrigger = lsapic_retrigger, 441da177e4SLinus Torvalds }; 45