Re: [PATCH 9/9] gpio: mxc: simplify gpio_set_wake_irq() with irq_set_irq_wake and assign_bit
From: Andy Shevchenko
Date: Sat Oct 03 2026 - 14:10:34 EST
On Sat, Oct 3, 2026 at 3:10 PM Peng Fan (OSS) <peng.fan@xxxxxxxxxxx> wrote:
>
> To simplify gpio_set_wake_irq():
> - Replace the enable/disable_irq_wake() if/else branches with a single
> irq_set_irq_wake() call which handles both directions internally.
> - Replace the separate set_bit()/clear_bit() calls with assign_bit()
> which sets or clears the bit based on the enable parameter.
...
> - if (enable) {
> - if (port->irq_high && (gpio_idx >= 16))
> - ret = enable_irq_wake(port->irq_high);
> - else
> - ret = enable_irq_wake(port->irq);
> - if (!ret)
> - set_bit(gpio_idx, &port->wakeup_pads);
> - } else {
> - if (port->irq_high && (gpio_idx >= 16))
> - ret = disable_irq_wake(port->irq_high);
> - else
> - ret = disable_irq_wake(port->irq);
> - if (!ret)
> - clear_bit(gpio_idx, &port->wakeup_pads);
> - }
> + if (port->irq_high && (gpio_idx >= 16))
> + ret = irq_set_irq_wake(port->irq_high, enable);
> + else
> + ret = irq_set_irq_wake(port->irq, enable);
> + if (!ret)
> + assign_bit(gpio_idx, &port->wakeup_pads, enable);
>
> return ret;
This uses an unusual pattern, we check for the error first.
But also this part should not be ping-ponged over the series, it
should be from the start like this, see my comment against the
respective patch.
> }
--
With Best Regards,
Andy Shevchenko