aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/plat-mxc/irq-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/plat-mxc/irq-common.c')
-rw-r--r--arch/arm/plat-mxc/irq-common.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/arch/arm/plat-mxc/irq-common.c b/arch/arm/plat-mxc/irq-common.c
index 96953e2e4f1..e1c6eff7258 100644
--- a/arch/arm/plat-mxc/irq-common.c
+++ b/arch/arm/plat-mxc/irq-common.c
@@ -42,16 +42,17 @@ EXPORT_SYMBOL(imx_irq_set_priority);
int mxc_set_irq_fiq(unsigned int irq, unsigned int type)
{
- struct irq_chip_generic *gc;
- int (*set_irq_fiq)(unsigned int, unsigned int);
+ struct mxc_irq_chip *chip;
+ struct irq_chip *base;
int ret;
ret = -ENOSYS;
- gc = irq_get_chip_data(irq);
- if (gc && gc->private) {
- set_irq_fiq = gc->private;
- ret = set_irq_fiq(irq, type);
+ base = irq_get_chip(irq);
+ if (base) {
+ chip = container_of(base, struct mxc_irq_chip, base);
+ if (chip->set_irq_fiq)
+ ret = chip->set_irq_fiq(irq, type);
}
return ret;