pinctrl/samsung: Use irq_set_handler_locked()
Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Jiang Liu <jiang.liu@linux.intel.com> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: linux-gpio@vger.kernel.org
This commit is contained in:
parent
40ec168ace
commit
f66eb498ff
|
@ -131,13 +131,13 @@ static int s3c24xx_eint_get_trigger(unsigned int type)
|
|||
}
|
||||
}
|
||||
|
||||
static void s3c24xx_eint_set_handler(unsigned int irq, unsigned int type)
|
||||
static void s3c24xx_eint_set_handler(struct irq_data *d, unsigned int type)
|
||||
{
|
||||
/* Edge- and level-triggered interrupts need different handlers */
|
||||
if (type & IRQ_TYPE_EDGE_BOTH)
|
||||
__irq_set_handler_locked(irq, handle_edge_irq);
|
||||
irq_set_handler_locked(d, handle_edge_irq);
|
||||
else
|
||||
__irq_set_handler_locked(irq, handle_level_irq);
|
||||
irq_set_handler_locked(d, handle_level_irq);
|
||||
}
|
||||
|
||||
static void s3c24xx_eint_set_function(struct samsung_pinctrl_drv_data *d,
|
||||
|
@ -181,7 +181,7 @@ static int s3c24xx_eint_type(struct irq_data *data, unsigned int type)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
s3c24xx_eint_set_handler(data->irq, type);
|
||||
s3c24xx_eint_set_handler(data, type);
|
||||
|
||||
/* Set up interrupt trigger */
|
||||
reg = d->virt_base + EINT_REG(index);
|
||||
|
|
|
@ -260,13 +260,13 @@ static int s3c64xx_irq_get_trigger(unsigned int type)
|
|||
return trigger;
|
||||
}
|
||||
|
||||
static void s3c64xx_irq_set_handler(unsigned int irq, unsigned int type)
|
||||
static void s3c64xx_irq_set_handler(struct irq_data *d, unsigned int type)
|
||||
{
|
||||
/* Edge- and level-triggered interrupts need different handlers */
|
||||
if (type & IRQ_TYPE_EDGE_BOTH)
|
||||
__irq_set_handler_locked(irq, handle_edge_irq);
|
||||
irq_set_handler_locked(d, handle_edge_irq);
|
||||
else
|
||||
__irq_set_handler_locked(irq, handle_level_irq);
|
||||
irq_set_handler_locked(d, handle_level_irq);
|
||||
}
|
||||
|
||||
static void s3c64xx_irq_set_function(struct samsung_pinctrl_drv_data *d,
|
||||
|
@ -356,7 +356,7 @@ static int s3c64xx_gpio_irq_set_type(struct irq_data *irqd, unsigned int type)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
s3c64xx_irq_set_handler(irqd->irq, type);
|
||||
s3c64xx_irq_set_handler(irqd, type);
|
||||
|
||||
/* Set up interrupt trigger */
|
||||
reg = d->virt_base + EINTCON_REG(bank->eint_offset);
|
||||
|
@ -567,7 +567,7 @@ static int s3c64xx_eint0_irq_set_type(struct irq_data *irqd, unsigned int type)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
s3c64xx_irq_set_handler(irqd->irq, type);
|
||||
s3c64xx_irq_set_handler(irqd, type);
|
||||
|
||||
/* Set up interrupt trigger */
|
||||
reg = d->virt_base + EINT0CON0_REG;
|
||||
|
|
Loading…
Reference in New Issue