|
@@ -1286,22 +1286,22 @@ static int alt_gpio_irq_type(struct irq_data *d, unsigned type)
|
|
|
|
|
|
switch (type) {
|
|
|
case IRQ_TYPE_EDGE_RISING:
|
|
|
- irq_set_handler(d->irq, handle_simple_irq);
|
|
|
+ __irq_set_handler_locked(d->irq, handle_simple_irq);
|
|
|
writel_relaxed(mask, pio + PIO_ESR);
|
|
|
writel_relaxed(mask, pio + PIO_REHLSR);
|
|
|
break;
|
|
|
case IRQ_TYPE_EDGE_FALLING:
|
|
|
- irq_set_handler(d->irq, handle_simple_irq);
|
|
|
+ __irq_set_handler_locked(d->irq, handle_simple_irq);
|
|
|
writel_relaxed(mask, pio + PIO_ESR);
|
|
|
writel_relaxed(mask, pio + PIO_FELLSR);
|
|
|
break;
|
|
|
case IRQ_TYPE_LEVEL_LOW:
|
|
|
- irq_set_handler(d->irq, handle_level_irq);
|
|
|
+ __irq_set_handler_locked(d->irq, handle_level_irq);
|
|
|
writel_relaxed(mask, pio + PIO_LSR);
|
|
|
writel_relaxed(mask, pio + PIO_FELLSR);
|
|
|
break;
|
|
|
case IRQ_TYPE_LEVEL_HIGH:
|
|
|
- irq_set_handler(d->irq, handle_level_irq);
|
|
|
+ __irq_set_handler_locked(d->irq, handle_level_irq);
|
|
|
writel_relaxed(mask, pio + PIO_LSR);
|
|
|
writel_relaxed(mask, pio + PIO_REHLSR);
|
|
|
break;
|
|
@@ -1310,7 +1310,7 @@ static int alt_gpio_irq_type(struct irq_data *d, unsigned type)
|
|
|
* disable additional interrupt modes:
|
|
|
* fall back to default behavior
|
|
|
*/
|
|
|
- irq_set_handler(d->irq, handle_simple_irq);
|
|
|
+ __irq_set_handler_locked(d->irq, handle_simple_irq);
|
|
|
writel_relaxed(mask, pio + PIO_AIMDR);
|
|
|
return 0;
|
|
|
case IRQ_TYPE_NONE:
|