avr32: At32ap: Convert intc irq_chip to new functions
Also replace the open coded handler call with the proper wrapper. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com> LKML-Reference: <20110206163009.096308633@linutronix.de>
This commit is contained in:
@@ -34,12 +34,12 @@ extern struct platform_device at32_intc0_device;
|
|||||||
* TODO: We may be able to implement mask/unmask by setting IxM flags
|
* TODO: We may be able to implement mask/unmask by setting IxM flags
|
||||||
* in the status register.
|
* in the status register.
|
||||||
*/
|
*/
|
||||||
static void intc_mask_irq(unsigned int irq)
|
static void intc_mask_irq(struct irq_data *d)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void intc_unmask_irq(unsigned int irq)
|
static void intc_unmask_irq(struct irq_data *d)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -47,8 +47,8 @@ static void intc_unmask_irq(unsigned int irq)
|
|||||||
static struct intc intc0 = {
|
static struct intc intc0 = {
|
||||||
.chip = {
|
.chip = {
|
||||||
.name = "intc",
|
.name = "intc",
|
||||||
.mask = intc_mask_irq,
|
.irq_mask = intc_mask_irq,
|
||||||
.unmask = intc_unmask_irq,
|
.irq_unmask = intc_unmask_irq,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -57,7 +57,6 @@ static struct intc intc0 = {
|
|||||||
*/
|
*/
|
||||||
asmlinkage void do_IRQ(int level, struct pt_regs *regs)
|
asmlinkage void do_IRQ(int level, struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
struct irq_desc *desc;
|
|
||||||
struct pt_regs *old_regs;
|
struct pt_regs *old_regs;
|
||||||
unsigned int irq;
|
unsigned int irq;
|
||||||
unsigned long status_reg;
|
unsigned long status_reg;
|
||||||
@@ -69,8 +68,7 @@ asmlinkage void do_IRQ(int level, struct pt_regs *regs)
|
|||||||
irq_enter();
|
irq_enter();
|
||||||
|
|
||||||
irq = intc_readl(&intc0, INTCAUSE0 - 4 * level);
|
irq = intc_readl(&intc0, INTCAUSE0 - 4 * level);
|
||||||
desc = irq_desc + irq;
|
generic_handle_irq(irq);
|
||||||
desc->handle_irq(irq, desc);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clear all interrupt level masks so that we may handle
|
* Clear all interrupt level masks so that we may handle
|
||||||
|
Reference in New Issue
Block a user