On Tue, Sep 19, 2023 at 04:24:26PM -0500, Danny Kaehn wrote: > Previously cp2112_gpio_irq_shutdown always cancelled the cp2112_gpio_irq_shutdown() > gpio_poll_worker, even if other IRQs were still active, and did not set > the gpio_poll flag to false. This resulted in any call to _shutdown() > resulting in interrupts no longer functioning on the chip until a > _remove occurred (a.e. the cp2112 is unplugged or system rebooted). _remove() > Only cancel polling if all IRQs are disabled/masked, and correctly set > the gpio_poll flag, allowing polling to restart when an interrupt is > next enabled. ... > + if (!dev->irq_mask) > + { The style tells to use these on a single line. > + dev->gpio_poll = false; > + cancel_delayed_work_sync(&dev->gpio_poll_worker); > + } -- With Best Regards, Andy Shevchenko