Re: [PATCH] Input: wm831x-on - free the mapped IRQ on removal

From: Myeonghun Pak

Date: Mon Nov 09 2026 - 21:22:35 EST


Hi Dmitry,

Thanks for the review. I've updated the patch to use managed IRQ/work
cleanup and MFD-provided mapped IRQs.

Polling is retained for release detection, since the chip only
interrupts on assertion.

Thanks,
Myeonghun

2026년 10월 16일 (금) 오후 2:57, Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>님이 작성:

>
> Hi Myeonghun,
>
> On Thu, Oct 15, 2026 at 10:43:00PM -0400, Myeonghun Pak wrote:
> > Probe requests the Linux IRQ returned by wm831x_irq(), but remove
> > passes the untransformed MFD IRQ resource to free_irq(). The two numbers
> > are not guaranteed to match. If they differ, the ON handler remains
> > registered and can queue polling work after the input device and driver
> > data have been released.
> >
> > Store the requested IRQ and free it before cancelling polling work on
> > removal. Also cancel already queued work after free_irq() when input
> > registration fails; free_irq() waits for the handler but does not cancel
> > its work.
>
> Why don't we switch to devm_delayed_work_autocancel() and
> devm_request_irq() (or maybe use devm_request_threaded_itq() and get rid
> of the delayed work)?
>
> Also we need to get rid of wm831_irq() and make MFD give us already
> mapped interrupt.
>
> Thanks.
>
> --
> Dmitry