Commit f66eb498 authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Linus Walleij

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: default avatarThomas 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
parent 40ec168a
...@@ -131,13 +131,13 @@ static int s3c24xx_eint_get_trigger(unsigned int type) ...@@ -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 */ /* Edge- and level-triggered interrupts need different handlers */
if (type & IRQ_TYPE_EDGE_BOTH) if (type & IRQ_TYPE_EDGE_BOTH)
__irq_set_handler_locked(irq, handle_edge_irq); irq_set_handler_locked(d, handle_edge_irq);
else 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, 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) ...@@ -181,7 +181,7 @@ static int s3c24xx_eint_type(struct irq_data *data, unsigned int type)
return -EINVAL; return -EINVAL;
} }
s3c24xx_eint_set_handler(data->irq, type); s3c24xx_eint_set_handler(data, type);
/* Set up interrupt trigger */ /* Set up interrupt trigger */
reg = d->virt_base + EINT_REG(index); reg = d->virt_base + EINT_REG(index);
......
...@@ -260,13 +260,13 @@ static int s3c64xx_irq_get_trigger(unsigned int type) ...@@ -260,13 +260,13 @@ static int s3c64xx_irq_get_trigger(unsigned int type)
return trigger; 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 */ /* Edge- and level-triggered interrupts need different handlers */
if (type & IRQ_TYPE_EDGE_BOTH) if (type & IRQ_TYPE_EDGE_BOTH)
__irq_set_handler_locked(irq, handle_edge_irq); irq_set_handler_locked(d, handle_edge_irq);
else 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, 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) ...@@ -356,7 +356,7 @@ static int s3c64xx_gpio_irq_set_type(struct irq_data *irqd, unsigned int type)
return -EINVAL; return -EINVAL;
} }
s3c64xx_irq_set_handler(irqd->irq, type); s3c64xx_irq_set_handler(irqd, type);
/* Set up interrupt trigger */ /* Set up interrupt trigger */
reg = d->virt_base + EINTCON_REG(bank->eint_offset); 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) ...@@ -567,7 +567,7 @@ static int s3c64xx_eint0_irq_set_type(struct irq_data *irqd, unsigned int type)
return -EINVAL; return -EINVAL;
} }
s3c64xx_irq_set_handler(irqd->irq, type); s3c64xx_irq_set_handler(irqd, type);
/* Set up interrupt trigger */ /* Set up interrupt trigger */
reg = d->virt_base + EINT0CON0_REG; reg = d->virt_base + EINT0CON0_REG;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment