On 6/9/2022 4:18 PM, Mark Brown wrote:
On Thu, Jun 09, 2022 at 03:35:37PM +0200, Amadeusz Sławiński wrote:
Interrupt is only needed when jack detection is enabled, so enable it
then, similarly disable it when jack detection is being disabled.
if (jack == NULL) {
/* Disable jack detection */
+ disable_irq(rt274->i2c->irq);
There is absolutely no need to do this, it'll interfere with any sharing
of the interrupt and if the interrupt isn't firing then there is no cost
to having the interrupt registered.
The driver could use some cleanup of the interrupt handler, it currently
unconditionally clears anything that fires and reports IRQ_HANDLED but
should only report IRQ_HANDLED if there was anything from the device.
Practically speaking it shouldn't make much difference unless there's
spurious interrupts or the interrupt gets shared.
I will recheck this again, but if I remember correctly we may have had
problems that codec kept firing interrupts when we unloaded machine
board and codec driver kept spamming dmesg due to _dbg message present
in irq handler.