pinctrl: intel: No need to disable IRQs in the handler
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 4 Mar 2021 10:54:32 +0000 (12:54 +0200)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 25 Mar 2021 12:52:41 +0000 (14:52 +0200)
In IRQ handler interrupts are already disabled, hence no need
to repeat it. Even in the threaded case, which is disabled here,
it is not a problem because IRQ framework serializes descriptor
handling. Remove disabling IRQ part in the handler.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/pinctrl/intel/pinctrl-intel.c

index 7283203..795d60d 100644 (file)
@@ -1173,16 +1173,15 @@ static int intel_gpio_community_irq_handler(struct intel_pinctrl *pctrl,
        for (gpp = 0; gpp < community->ngpps; gpp++) {
                const struct intel_padgroup *padgrp = &community->gpps[gpp];
                unsigned long pending, enabled, gpp_offset;
-               unsigned long flags;
 
-               raw_spin_lock_irqsave(&pctrl->lock, flags);
+               raw_spin_lock(&pctrl->lock);
 
                pending = readl(community->regs + community->is_offset +
                                padgrp->reg_num * 4);
                enabled = readl(community->regs + community->ie_offset +
                                padgrp->reg_num * 4);
 
-               raw_spin_unlock_irqrestore(&pctrl->lock, flags);
+               raw_spin_unlock(&pctrl->lock);
 
                /* Only interrupts that are enabled */
                pending &= enabled;