提交 9458ea56 编写于 作者: T Thomas Gleixner 提交者: Ralf Baechle

MIPS: IP22/IP28: Convert to new irq_chip functions

Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
To: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/2202/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
上级 efb02da5
...@@ -31,88 +31,80 @@ static char lc3msk_to_irqnr[256]; ...@@ -31,88 +31,80 @@ static char lc3msk_to_irqnr[256];
extern int ip22_eisa_init(void); extern int ip22_eisa_init(void);
static void enable_local0_irq(unsigned int irq) static void enable_local0_irq(struct irq_data *d)
{ {
/* don't allow mappable interrupt to be enabled from setup_irq, /* don't allow mappable interrupt to be enabled from setup_irq,
* we have our own way to do so */ * we have our own way to do so */
if (irq != SGI_MAP_0_IRQ) if (d->irq != SGI_MAP_0_IRQ)
sgint->imask0 |= (1 << (irq - SGINT_LOCAL0)); sgint->imask0 |= (1 << (d->irq - SGINT_LOCAL0));
} }
static void disable_local0_irq(unsigned int irq) static void disable_local0_irq(struct irq_data *d)
{ {
sgint->imask0 &= ~(1 << (irq - SGINT_LOCAL0)); sgint->imask0 &= ~(1 << (d->irq - SGINT_LOCAL0));
} }
static struct irq_chip ip22_local0_irq_type = { static struct irq_chip ip22_local0_irq_type = {
.name = "IP22 local 0", .name = "IP22 local 0",
.ack = disable_local0_irq, .irq_mask = disable_local0_irq,
.mask = disable_local0_irq, .irq_unmask = enable_local0_irq,
.mask_ack = disable_local0_irq,
.unmask = enable_local0_irq,
}; };
static void enable_local1_irq(unsigned int irq) static void enable_local1_irq(struct irq_data *d)
{ {
/* don't allow mappable interrupt to be enabled from setup_irq, /* don't allow mappable interrupt to be enabled from setup_irq,
* we have our own way to do so */ * we have our own way to do so */
if (irq != SGI_MAP_1_IRQ) if (d->irq != SGI_MAP_1_IRQ)
sgint->imask1 |= (1 << (irq - SGINT_LOCAL1)); sgint->imask1 |= (1 << (d->irq - SGINT_LOCAL1));
} }
static void disable_local1_irq(unsigned int irq) static void disable_local1_irq(struct irq_data *d)
{ {
sgint->imask1 &= ~(1 << (irq - SGINT_LOCAL1)); sgint->imask1 &= ~(1 << (d->irq - SGINT_LOCAL1));
} }
static struct irq_chip ip22_local1_irq_type = { static struct irq_chip ip22_local1_irq_type = {
.name = "IP22 local 1", .name = "IP22 local 1",
.ack = disable_local1_irq, .irq_mask = disable_local1_irq,
.mask = disable_local1_irq, .irq_unmask = enable_local1_irq,
.mask_ack = disable_local1_irq,
.unmask = enable_local1_irq,
}; };
static void enable_local2_irq(unsigned int irq) static void enable_local2_irq(struct irq_data *d)
{ {
sgint->imask0 |= (1 << (SGI_MAP_0_IRQ - SGINT_LOCAL0)); sgint->imask0 |= (1 << (SGI_MAP_0_IRQ - SGINT_LOCAL0));
sgint->cmeimask0 |= (1 << (irq - SGINT_LOCAL2)); sgint->cmeimask0 |= (1 << (d->irq - SGINT_LOCAL2));
} }
static void disable_local2_irq(unsigned int irq) static void disable_local2_irq(struct irq_data *d)
{ {
sgint->cmeimask0 &= ~(1 << (irq - SGINT_LOCAL2)); sgint->cmeimask0 &= ~(1 << (d->irq - SGINT_LOCAL2));
if (!sgint->cmeimask0) if (!sgint->cmeimask0)
sgint->imask0 &= ~(1 << (SGI_MAP_0_IRQ - SGINT_LOCAL0)); sgint->imask0 &= ~(1 << (SGI_MAP_0_IRQ - SGINT_LOCAL0));
} }
static struct irq_chip ip22_local2_irq_type = { static struct irq_chip ip22_local2_irq_type = {
.name = "IP22 local 2", .name = "IP22 local 2",
.ack = disable_local2_irq, .irq_mask = disable_local2_irq,
.mask = disable_local2_irq, .irq_unmask = enable_local2_irq,
.mask_ack = disable_local2_irq,
.unmask = enable_local2_irq,
}; };
static void enable_local3_irq(unsigned int irq) static void enable_local3_irq(struct irq_data *d)
{ {
sgint->imask1 |= (1 << (SGI_MAP_1_IRQ - SGINT_LOCAL1)); sgint->imask1 |= (1 << (SGI_MAP_1_IRQ - SGINT_LOCAL1));
sgint->cmeimask1 |= (1 << (irq - SGINT_LOCAL3)); sgint->cmeimask1 |= (1 << (d->irq - SGINT_LOCAL3));
} }
static void disable_local3_irq(unsigned int irq) static void disable_local3_irq(struct irq_data *d)
{ {
sgint->cmeimask1 &= ~(1 << (irq - SGINT_LOCAL3)); sgint->cmeimask1 &= ~(1 << (d->irq - SGINT_LOCAL3));
if (!sgint->cmeimask1) if (!sgint->cmeimask1)
sgint->imask1 &= ~(1 << (SGI_MAP_1_IRQ - SGINT_LOCAL1)); sgint->imask1 &= ~(1 << (SGI_MAP_1_IRQ - SGINT_LOCAL1));
} }
static struct irq_chip ip22_local3_irq_type = { static struct irq_chip ip22_local3_irq_type = {
.name = "IP22 local 3", .name = "IP22 local 3",
.ack = disable_local3_irq, .irq_mask = disable_local3_irq,
.mask = disable_local3_irq, .irq_unmask = enable_local3_irq,
.mask_ack = disable_local3_irq,
.unmask = enable_local3_irq,
}; };
static void indy_local0_irqdispatch(void) static void indy_local0_irqdispatch(void)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册