2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
8 * Copyright (C) 2008 Silicon Graphics, Inc. All rights reserved.
11 #include <linux/module.h>
12 #include <linux/irq.h>
15 #include <asm/uv/uv_irq.h>
17 static void uv_noop(unsigned int irq
)
21 static unsigned int uv_noop_ret(unsigned int irq
)
26 static void uv_ack_apic(unsigned int irq
)
31 struct irq_chip uv_irq_chip
= {
33 .startup
= uv_noop_ret
,
45 * Set up a mapping of an available irq and vector, and enable the specified
46 * MMR that defines the MSI that is to be sent to the specified CPU when an
47 * interrupt is raised.
49 int uv_setup_irq(char *irq_name
, int cpu
, int mmr_blade
,
50 unsigned long mmr_offset
)
59 ret
= arch_enable_uv_irq(irq_name
, irq
, cpu
, mmr_blade
, mmr_offset
);
65 EXPORT_SYMBOL_GPL(uv_setup_irq
);
68 * Tear down a mapping of an irq and vector, and disable the specified MMR that
69 * defined the MSI that was to be sent to the specified CPU when an interrupt
72 * Set mmr_blade and mmr_offset to what was passed in on uv_setup_irq().
74 void uv_teardown_irq(unsigned int irq
, int mmr_blade
, unsigned long mmr_offset
)
76 arch_disable_uv_irq(mmr_blade
, mmr_offset
);
79 EXPORT_SYMBOL_GPL(uv_teardown_irq
);