blob: 1b3a776e5161363ea82efcba50a1ecc7657b43f0 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * LSAPIC Interrupt Controller
3 *
4 * This takes care of interrupts that are generated by the CPU's
5 * internal Streamlined Advanced Programmable Interrupt Controller
6 * (LSAPIC), such as the ITC and IPI interrupts.
7 *
8 * Copyright (C) 1999 VA Linux Systems
9 * Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
10 * Copyright (C) 2000 Hewlett-Packard Co
11 * Copyright (C) 2000 David Mosberger-Tang <davidm@hpl.hp.com>
12 */
13
14#include <linux/sched.h>
15#include <linux/irq.h>
16
17static unsigned int
Thomas Gleixner5c217b62011-02-04 20:29:37 +010018lsapic_noop_startup (struct irq_data *data)
Linus Torvalds1da177e2005-04-16 15:20:36 -070019{
20 return 0;
21}
22
23static void
Thomas Gleixner5c217b62011-02-04 20:29:37 +010024lsapic_noop (struct irq_data *data)
Linus Torvalds1da177e2005-04-16 15:20:36 -070025{
Simon Arlott72fdbdc2007-05-11 14:55:43 -070026 /* nothing to do... */
Linus Torvalds1da177e2005-04-16 15:20:36 -070027}
28
Thomas Gleixner5c217b62011-02-04 20:29:37 +010029static int lsapic_retrigger(struct irq_data *data)
Ingo Molnarc0ad90a2006-06-29 02:24:44 -070030{
Thomas Gleixner5c217b62011-02-04 20:29:37 +010031 ia64_resend_irq(data->irq);
Ingo Molnarc0ad90a2006-06-29 02:24:44 -070032
33 return 1;
34}
35
Thomas Gleixnerfb824f42009-06-10 12:45:00 -070036struct irq_chip irq_type_ia64_lsapic = {
Thomas Gleixner5c217b62011-02-04 20:29:37 +010037 .name = "LSAPIC",
38 .irq_startup = lsapic_noop_startup,
39 .irq_shutdown = lsapic_noop,
40 .irq_enable = lsapic_noop,
41 .irq_disable = lsapic_noop,
42 .irq_ack = lsapic_noop,
43 .irq_retrigger = lsapic_retrigger,
Linus Torvalds1da177e2005-04-16 15:20:36 -070044};