cris: Convert V10 interrupt handling
Convert the irq_chip functions and install handle_simple_irq for each interrupt. This converts V10 to the flow handling and lets us remove __do_IRQ(). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Mikael Starvik <starvik@axis.com>
This commit is contained in:
parent
c84077ac29
commit
f7a004baa2
|
@ -104,43 +104,21 @@ static void (*interrupt[NR_IRQS])(void) = {
|
||||||
IRQ31_interrupt
|
IRQ31_interrupt
|
||||||
};
|
};
|
||||||
|
|
||||||
static void enable_crisv10_irq(unsigned int irq);
|
static void enable_crisv10_irq(struct irq_data *data)
|
||||||
|
|
||||||
static unsigned int startup_crisv10_irq(unsigned int irq)
|
|
||||||
{
|
{
|
||||||
enable_crisv10_irq(irq);
|
crisv10_unmask_irq(data->irq);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define shutdown_crisv10_irq disable_crisv10_irq
|
static void disable_crisv10_irq(struct irq_data *data)
|
||||||
|
|
||||||
static void enable_crisv10_irq(unsigned int irq)
|
|
||||||
{
|
|
||||||
crisv10_unmask_irq(irq);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void disable_crisv10_irq(unsigned int irq)
|
|
||||||
{
|
|
||||||
crisv10_mask_irq(irq);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ack_crisv10_irq(unsigned int irq)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void end_crisv10_irq(unsigned int irq)
|
|
||||||
{
|
{
|
||||||
|
crisv10_mask_irq(data->irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct irq_chip crisv10_irq_type = {
|
static struct irq_chip crisv10_irq_type = {
|
||||||
.name = "CRISv10",
|
.name = "CRISv10",
|
||||||
.startup = startup_crisv10_irq,
|
.irq_shutdown = disable_crisv10_irq,
|
||||||
.shutdown = shutdown_crisv10_irq,
|
.irq_enable = enable_crisv10_irq,
|
||||||
.enable = enable_crisv10_irq,
|
.irq_disable = disable_crisv10_irq,
|
||||||
.disable = disable_crisv10_irq,
|
|
||||||
.ack = ack_crisv10_irq,
|
|
||||||
.end = end_crisv10_irq,
|
|
||||||
.set_affinity = NULL
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void weird_irq(void);
|
void weird_irq(void);
|
||||||
|
@ -221,7 +199,8 @@ init_IRQ(void)
|
||||||
|
|
||||||
/* Initialize IRQ handler descriptors. */
|
/* Initialize IRQ handler descriptors. */
|
||||||
for(i = 2; i < NR_IRQS; i++) {
|
for(i = 2; i < NR_IRQS; i++) {
|
||||||
irq_desc[i].chip = &crisv10_irq_type;
|
set_irq_desc_and_handler(i, &crisv10_irq_type,
|
||||||
|
handle_simple_irq);
|
||||||
set_int_vector(i, interrupt[i]);
|
set_int_vector(i, interrupt[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue