提交 6e8f54fa 编写于 作者: L Lennert Buytenhek

ARM: ixp2000: irq_data conversion.

Signed-off-by: NLennert Buytenhek <buytenh@secretlab.ca>
上级 a0ad2a7e
...@@ -309,9 +309,9 @@ static void ixp2000_GPIO_irq_handler(unsigned int irq, struct irq_desc *desc) ...@@ -309,9 +309,9 @@ static void ixp2000_GPIO_irq_handler(unsigned int irq, struct irq_desc *desc)
} }
} }
static int ixp2000_GPIO_irq_type(unsigned int irq, unsigned int type) static int ixp2000_GPIO_irq_type(struct irq_data *d, unsigned int type)
{ {
int line = irq - IRQ_IXP2000_GPIO0; int line = d->irq - IRQ_IXP2000_GPIO0;
/* /*
* First, configure this GPIO line as an input. * First, configure this GPIO line as an input.
...@@ -342,8 +342,10 @@ static int ixp2000_GPIO_irq_type(unsigned int irq, unsigned int type) ...@@ -342,8 +342,10 @@ static int ixp2000_GPIO_irq_type(unsigned int irq, unsigned int type)
return 0; return 0;
} }
static void ixp2000_GPIO_irq_mask_ack(unsigned int irq) static void ixp2000_GPIO_irq_mask_ack(struct irq_data *d)
{ {
unsigned int irq = d->irq;
ixp2000_reg_write(IXP2000_GPIO_INCR, (1 << (irq - IRQ_IXP2000_GPIO0))); ixp2000_reg_write(IXP2000_GPIO_INCR, (1 << (irq - IRQ_IXP2000_GPIO0)));
ixp2000_reg_write(IXP2000_GPIO_EDSR, (1 << (irq - IRQ_IXP2000_GPIO0))); ixp2000_reg_write(IXP2000_GPIO_EDSR, (1 << (irq - IRQ_IXP2000_GPIO0)));
...@@ -351,38 +353,42 @@ static void ixp2000_GPIO_irq_mask_ack(unsigned int irq) ...@@ -351,38 +353,42 @@ static void ixp2000_GPIO_irq_mask_ack(unsigned int irq)
ixp2000_reg_wrb(IXP2000_GPIO_INST, (1 << (irq - IRQ_IXP2000_GPIO0))); ixp2000_reg_wrb(IXP2000_GPIO_INST, (1 << (irq - IRQ_IXP2000_GPIO0)));
} }
static void ixp2000_GPIO_irq_mask(unsigned int irq) static void ixp2000_GPIO_irq_mask(struct irq_data *d)
{ {
unsigned int irq = d->irq;
ixp2000_reg_wrb(IXP2000_GPIO_INCR, (1 << (irq - IRQ_IXP2000_GPIO0))); ixp2000_reg_wrb(IXP2000_GPIO_INCR, (1 << (irq - IRQ_IXP2000_GPIO0)));
} }
static void ixp2000_GPIO_irq_unmask(unsigned int irq) static void ixp2000_GPIO_irq_unmask(struct irq_data *d)
{ {
unsigned int irq = d->irq;
ixp2000_reg_write(IXP2000_GPIO_INSR, (1 << (irq - IRQ_IXP2000_GPIO0))); ixp2000_reg_write(IXP2000_GPIO_INSR, (1 << (irq - IRQ_IXP2000_GPIO0)));
} }
static struct irq_chip ixp2000_GPIO_irq_chip = { static struct irq_chip ixp2000_GPIO_irq_chip = {
.ack = ixp2000_GPIO_irq_mask_ack, .irq_ack = ixp2000_GPIO_irq_mask_ack,
.mask = ixp2000_GPIO_irq_mask, .irq_mask = ixp2000_GPIO_irq_mask,
.unmask = ixp2000_GPIO_irq_unmask, .irq_unmask = ixp2000_GPIO_irq_unmask,
.set_type = ixp2000_GPIO_irq_type, .irq_set_type = ixp2000_GPIO_irq_type,
}; };
static void ixp2000_pci_irq_mask(unsigned int irq) static void ixp2000_pci_irq_mask(struct irq_data *d)
{ {
unsigned long temp = *IXP2000_PCI_XSCALE_INT_ENABLE; unsigned long temp = *IXP2000_PCI_XSCALE_INT_ENABLE;
if (irq == IRQ_IXP2000_PCIA) if (d->irq == IRQ_IXP2000_PCIA)
ixp2000_reg_wrb(IXP2000_PCI_XSCALE_INT_ENABLE, (temp & ~(1 << 26))); ixp2000_reg_wrb(IXP2000_PCI_XSCALE_INT_ENABLE, (temp & ~(1 << 26)));
else if (irq == IRQ_IXP2000_PCIB) else if (d->irq == IRQ_IXP2000_PCIB)
ixp2000_reg_wrb(IXP2000_PCI_XSCALE_INT_ENABLE, (temp & ~(1 << 27))); ixp2000_reg_wrb(IXP2000_PCI_XSCALE_INT_ENABLE, (temp & ~(1 << 27)));
} }
static void ixp2000_pci_irq_unmask(unsigned int irq) static void ixp2000_pci_irq_unmask(struct irq_data *d)
{ {
unsigned long temp = *IXP2000_PCI_XSCALE_INT_ENABLE; unsigned long temp = *IXP2000_PCI_XSCALE_INT_ENABLE;
if (irq == IRQ_IXP2000_PCIA) if (d->irq == IRQ_IXP2000_PCIA)
ixp2000_reg_write(IXP2000_PCI_XSCALE_INT_ENABLE, (temp | (1 << 26))); ixp2000_reg_write(IXP2000_PCI_XSCALE_INT_ENABLE, (temp | (1 << 26)));
else if (irq == IRQ_IXP2000_PCIB) else if (d->irq == IRQ_IXP2000_PCIB)
ixp2000_reg_write(IXP2000_PCI_XSCALE_INT_ENABLE, (temp | (1 << 27))); ixp2000_reg_write(IXP2000_PCI_XSCALE_INT_ENABLE, (temp | (1 << 27)));
} }
...@@ -401,44 +407,44 @@ static void ixp2000_err_irq_handler(unsigned int irq, struct irq_desc *desc) ...@@ -401,44 +407,44 @@ static void ixp2000_err_irq_handler(unsigned int irq, struct irq_desc *desc)
} }
} }
static void ixp2000_err_irq_mask(unsigned int irq) static void ixp2000_err_irq_mask(struct irq_data *d)
{ {
ixp2000_reg_write(IXP2000_IRQ_ERR_ENABLE_CLR, ixp2000_reg_write(IXP2000_IRQ_ERR_ENABLE_CLR,
(1 << (irq - IRQ_IXP2000_DRAM0_MIN_ERR))); (1 << (d->irq - IRQ_IXP2000_DRAM0_MIN_ERR)));
} }
static void ixp2000_err_irq_unmask(unsigned int irq) static void ixp2000_err_irq_unmask(struct irq_data *d)
{ {
ixp2000_reg_write(IXP2000_IRQ_ERR_ENABLE_SET, ixp2000_reg_write(IXP2000_IRQ_ERR_ENABLE_SET,
(1 << (irq - IRQ_IXP2000_DRAM0_MIN_ERR))); (1 << (d->irq - IRQ_IXP2000_DRAM0_MIN_ERR)));
} }
static struct irq_chip ixp2000_err_irq_chip = { static struct irq_chip ixp2000_err_irq_chip = {
.ack = ixp2000_err_irq_mask, .irq_ack = ixp2000_err_irq_mask,
.mask = ixp2000_err_irq_mask, .irq_mask = ixp2000_err_irq_mask,
.unmask = ixp2000_err_irq_unmask .irq_unmask = ixp2000_err_irq_unmask
}; };
static struct irq_chip ixp2000_pci_irq_chip = { static struct irq_chip ixp2000_pci_irq_chip = {
.ack = ixp2000_pci_irq_mask, .irq_ack = ixp2000_pci_irq_mask,
.mask = ixp2000_pci_irq_mask, .irq_mask = ixp2000_pci_irq_mask,
.unmask = ixp2000_pci_irq_unmask .irq_unmask = ixp2000_pci_irq_unmask
}; };
static void ixp2000_irq_mask(unsigned int irq) static void ixp2000_irq_mask(struct irq_data *d)
{ {
ixp2000_reg_wrb(IXP2000_IRQ_ENABLE_CLR, (1 << irq)); ixp2000_reg_wrb(IXP2000_IRQ_ENABLE_CLR, (1 << d->irq));
} }
static void ixp2000_irq_unmask(unsigned int irq) static void ixp2000_irq_unmask(struct irq_data *d)
{ {
ixp2000_reg_write(IXP2000_IRQ_ENABLE_SET, (1 << irq)); ixp2000_reg_write(IXP2000_IRQ_ENABLE_SET, (1 << d->irq));
} }
static struct irq_chip ixp2000_irq_chip = { static struct irq_chip ixp2000_irq_chip = {
.ack = ixp2000_irq_mask, .irq_ack = ixp2000_irq_mask,
.mask = ixp2000_irq_mask, .irq_mask = ixp2000_irq_mask,
.unmask = ixp2000_irq_unmask .irq_unmask = ixp2000_irq_unmask
}; };
void __init ixp2000_init_irq(void) void __init ixp2000_init_irq(void)
......
...@@ -63,7 +63,7 @@ static struct slowport_cfg slowport_cpld_cfg = { ...@@ -63,7 +63,7 @@ static struct slowport_cfg slowport_cpld_cfg = {
}; };
#endif #endif
static void ixdp2x00_irq_mask(unsigned int irq) static void ixdp2x00_irq_mask(struct irq_data *d)
{ {
unsigned long dummy; unsigned long dummy;
static struct slowport_cfg old_cfg; static struct slowport_cfg old_cfg;
...@@ -78,7 +78,7 @@ static void ixdp2x00_irq_mask(unsigned int irq) ...@@ -78,7 +78,7 @@ static void ixdp2x00_irq_mask(unsigned int irq)
#endif #endif
dummy = *board_irq_mask; dummy = *board_irq_mask;
dummy |= IXP2000_BOARD_IRQ_MASK(irq); dummy |= IXP2000_BOARD_IRQ_MASK(d->irq);
ixp2000_reg_wrb(board_irq_mask, dummy); ixp2000_reg_wrb(board_irq_mask, dummy);
#ifdef CONFIG_ARCH_IXDP2400 #ifdef CONFIG_ARCH_IXDP2400
...@@ -87,7 +87,7 @@ static void ixdp2x00_irq_mask(unsigned int irq) ...@@ -87,7 +87,7 @@ static void ixdp2x00_irq_mask(unsigned int irq)
#endif #endif
} }
static void ixdp2x00_irq_unmask(unsigned int irq) static void ixdp2x00_irq_unmask(struct irq_data *d)
{ {
unsigned long dummy; unsigned long dummy;
static struct slowport_cfg old_cfg; static struct slowport_cfg old_cfg;
...@@ -98,7 +98,7 @@ static void ixdp2x00_irq_unmask(unsigned int irq) ...@@ -98,7 +98,7 @@ static void ixdp2x00_irq_unmask(unsigned int irq)
#endif #endif
dummy = *board_irq_mask; dummy = *board_irq_mask;
dummy &= ~IXP2000_BOARD_IRQ_MASK(irq); dummy &= ~IXP2000_BOARD_IRQ_MASK(d->irq);
ixp2000_reg_wrb(board_irq_mask, dummy); ixp2000_reg_wrb(board_irq_mask, dummy);
if (machine_is_ixdp2400()) if (machine_is_ixdp2400())
...@@ -111,7 +111,7 @@ static void ixdp2x00_irq_handler(unsigned int irq, struct irq_desc *desc) ...@@ -111,7 +111,7 @@ static void ixdp2x00_irq_handler(unsigned int irq, struct irq_desc *desc)
static struct slowport_cfg old_cfg; static struct slowport_cfg old_cfg;
int i; int i;
desc->chip->mask(irq); desc->irq_data.chip->irq_mask(&desc->irq_data);
#ifdef CONFIG_ARCH_IXDP2400 #ifdef CONFIG_ARCH_IXDP2400
if (machine_is_ixdp2400()) if (machine_is_ixdp2400())
...@@ -133,13 +133,13 @@ static void ixdp2x00_irq_handler(unsigned int irq, struct irq_desc *desc) ...@@ -133,13 +133,13 @@ static void ixdp2x00_irq_handler(unsigned int irq, struct irq_desc *desc)
} }
} }
desc->chip->unmask(irq); desc->irq_data.chip->irq_unmask(&desc->irq_data);
} }
static struct irq_chip ixdp2x00_cpld_irq_chip = { static struct irq_chip ixdp2x00_cpld_irq_chip = {
.ack = ixdp2x00_irq_mask, .irq_ack = ixdp2x00_irq_mask,
.mask = ixdp2x00_irq_mask, .irq_mask = ixdp2x00_irq_mask,
.unmask = ixdp2x00_irq_unmask .irq_unmask = ixdp2x00_irq_unmask
}; };
void __init ixdp2x00_init_irq(volatile unsigned long *stat_reg, volatile unsigned long *mask_reg, unsigned long nr_of_irqs) void __init ixdp2x00_init_irq(volatile unsigned long *stat_reg, volatile unsigned long *mask_reg, unsigned long nr_of_irqs)
......
...@@ -48,16 +48,16 @@ ...@@ -48,16 +48,16 @@
/************************************************************************* /*************************************************************************
* IXDP2x01 IRQ Handling * IXDP2x01 IRQ Handling
*************************************************************************/ *************************************************************************/
static void ixdp2x01_irq_mask(unsigned int irq) static void ixdp2x01_irq_mask(struct irq_data *d)
{ {
ixp2000_reg_wrb(IXDP2X01_INT_MASK_SET_REG, ixp2000_reg_wrb(IXDP2X01_INT_MASK_SET_REG,
IXP2000_BOARD_IRQ_MASK(irq)); IXP2000_BOARD_IRQ_MASK(d->irq));
} }
static void ixdp2x01_irq_unmask(unsigned int irq) static void ixdp2x01_irq_unmask(struct irq_data *d)
{ {
ixp2000_reg_write(IXDP2X01_INT_MASK_CLR_REG, ixp2000_reg_write(IXDP2X01_INT_MASK_CLR_REG,
IXP2000_BOARD_IRQ_MASK(irq)); IXP2000_BOARD_IRQ_MASK(d->irq));
} }
static u32 valid_irq_mask; static u32 valid_irq_mask;
...@@ -67,7 +67,7 @@ static void ixdp2x01_irq_handler(unsigned int irq, struct irq_desc *desc) ...@@ -67,7 +67,7 @@ static void ixdp2x01_irq_handler(unsigned int irq, struct irq_desc *desc)
u32 ex_interrupt; u32 ex_interrupt;
int i; int i;
desc->chip->mask(irq); desc->irq_data.chip->irq_mask(&desc->irq_data);
ex_interrupt = *IXDP2X01_INT_STAT_REG & valid_irq_mask; ex_interrupt = *IXDP2X01_INT_STAT_REG & valid_irq_mask;
...@@ -83,13 +83,13 @@ static void ixdp2x01_irq_handler(unsigned int irq, struct irq_desc *desc) ...@@ -83,13 +83,13 @@ static void ixdp2x01_irq_handler(unsigned int irq, struct irq_desc *desc)
} }
} }
desc->chip->unmask(irq); desc->irq_data.chip->irq_unmask(&desc->irq_data);
} }
static struct irq_chip ixdp2x01_irq_chip = { static struct irq_chip ixdp2x01_irq_chip = {
.mask = ixdp2x01_irq_mask, .irq_mask = ixdp2x01_irq_mask,
.ack = ixdp2x01_irq_mask, .irq_ack = ixdp2x01_irq_mask,
.unmask = ixdp2x01_irq_unmask .irq_unmask = ixdp2x01_irq_unmask
}; };
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册