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 Gleixnerlsapic_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 Gleixnerlsapic_noop (struct irq_data *data) 261da177e4SLinus Torvalds { 2772fdbdceSSimon Arlott /* nothing to do... */ 281da177e4SLinus Torvalds } 291da177e4SLinus Torvalds lsapic_retrigger(struct irq_data * data)305c217b60SThomas Gleixnerstatic 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