2005-04-17 05:20:36 +07: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
|
2011-02-05 02:29:37 +07:00
|
|
|
lsapic_noop_startup (struct irq_data *data)
|
2005-04-17 05:20:36 +07:00
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2011-02-05 02:29:37 +07:00
|
|
|
lsapic_noop (struct irq_data *data)
|
2005-04-17 05:20:36 +07:00
|
|
|
{
|
2007-05-12 04:55:43 +07:00
|
|
|
/* nothing to do... */
|
2005-04-17 05:20:36 +07:00
|
|
|
}
|
|
|
|
|
2011-02-05 02:29:37 +07:00
|
|
|
static int lsapic_retrigger(struct irq_data *data)
|
2006-06-29 16:24:44 +07:00
|
|
|
{
|
2011-02-05 02:29:37 +07:00
|
|
|
ia64_resend_irq(data->irq);
|
2006-06-29 16:24:44 +07:00
|
|
|
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2009-06-11 02:45:00 +07:00
|
|
|
struct irq_chip irq_type_ia64_lsapic = {
|
2011-02-05 02:29:37 +07:00
|
|
|
.name = "LSAPIC",
|
|
|
|
.irq_startup = lsapic_noop_startup,
|
|
|
|
.irq_shutdown = lsapic_noop,
|
|
|
|
.irq_enable = lsapic_noop,
|
|
|
|
.irq_disable = lsapic_noop,
|
|
|
|
.irq_ack = lsapic_noop,
|
|
|
|
.irq_retrigger = lsapic_retrigger,
|
2005-04-17 05:20:36 +07:00
|
|
|
};
|