blob: 23bf4499a75d9937432a3b67316f1c6ae75cd80e [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001// SPDX-License-Identifier: GPL-2.0
Linus Torvalds1da177e2005-04-16 15:20:36 -07002/*
3 * LSAPIC Interrupt Controller
4 *
5 * This takes care of interrupts that are generated by the CPU's
6 * internal Streamlined Advanced Programmable Interrupt Controller
7 * (LSAPIC), such as the ITC and IPI interrupts.
8 *
9 * Copyright (C) 1999 VA Linux Systems
10 * Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
11 * Copyright (C) 2000 Hewlett-Packard Co
12 * Copyright (C) 2000 David Mosberger-Tang <davidm@hpl.hp.com>
13 */
14
15#include <linux/sched.h>
16#include <linux/irq.h>
17
18static unsigned int
Thomas Gleixner5c217b62011-02-04 20:29:37 +010019lsapic_noop_startup (struct irq_data *data)
Linus Torvalds1da177e2005-04-16 15:20:36 -070020{
21 return 0;
22}
23
24static void
Thomas Gleixner5c217b62011-02-04 20:29:37 +010025lsapic_noop (struct irq_data *data)
Linus Torvalds1da177e2005-04-16 15:20:36 -070026{
Simon Arlott72fdbdc2007-05-11 14:55:43 -070027 /* nothing to do... */
Linus Torvalds1da177e2005-04-16 15:20:36 -070028}
29
Thomas Gleixner5c217b62011-02-04 20:29:37 +010030static int lsapic_retrigger(struct irq_data *data)
Ingo Molnarc0ad90a2006-06-29 02:24:44 -070031{
Thomas Gleixner5c217b62011-02-04 20:29:37 +010032 ia64_resend_irq(data->irq);
Ingo Molnarc0ad90a2006-06-29 02:24:44 -070033
34 return 1;
35}
36
Thomas Gleixnerfb824f42009-06-10 12:45:00 -070037struct irq_chip irq_type_ia64_lsapic = {
Thomas Gleixner5c217b62011-02-04 20:29:37 +010038 .name = "LSAPIC",
39 .irq_startup = lsapic_noop_startup,
40 .irq_shutdown = lsapic_noop,
41 .irq_enable = lsapic_noop,
42 .irq_disable = lsapic_noop,
43 .irq_ack = lsapic_noop,
44 .irq_retrigger = lsapic_retrigger,
Linus Torvalds1da177e2005-04-16 15:20:36 -070045};