2005-04-17 06:20:36 +08:00
|
|
|
/*
|
|
|
|
* LSAPIC Interrupt Controller
|
|
|
|
*
|
|
|
|
* This takes care of interrupts that are generated by the CPU's
|
|
|
|
* internal Streamlined Advanced Programmable Interrupt Controller
|
|
|
|
* (LSAPIC), such as the ITC and IPI interrupts.
|
|
|
|
*
|
|
|
|
* Copyright (C) 1999 VA Linux Systems
|
|
|
|
* Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
|
|
|
|
* Copyright (C) 2000 Hewlett-Packard Co
|
|
|
|
* Copyright (C) 2000 David Mosberger-Tang <davidm@hpl.hp.com>
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <linux/sched.h>
|
|
|
|
#include <linux/irq.h>
|
|
|
|
|
|
|
|
static unsigned int
|
|
|
|
lsapic_noop_startup (unsigned int irq)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
lsapic_noop (unsigned int irq)
|
|
|
|
{
|
2007-05-12 05:55:43 +08:00
|
|
|
/* nothing to do... */
|
2005-04-17 06:20:36 +08:00
|
|
|
}
|
|
|
|
|
2006-06-29 17:24:44 +08:00
|
|
|
static int lsapic_retrigger(unsigned int irq)
|
|
|
|
{
|
|
|
|
ia64_resend_irq(irq);
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2009-06-11 03:45:00 +08:00
|
|
|
struct irq_chip irq_type_ia64_lsapic = {
|
2006-11-16 16:43:02 +08:00
|
|
|
.name = "LSAPIC",
|
2005-04-17 06:20:36 +08:00
|
|
|
.startup = lsapic_noop_startup,
|
|
|
|
.shutdown = lsapic_noop,
|
|
|
|
.enable = lsapic_noop,
|
|
|
|
.disable = lsapic_noop,
|
|
|
|
.ack = lsapic_noop,
|
2006-06-29 17:24:44 +08:00
|
|
|
.end = lsapic_noop,
|
|
|
|
.retrigger = lsapic_retrigger,
|
2005-04-17 06:20:36 +08:00
|
|
|
};
|