[PATCH 07/11] ASoC: codecs: rt274: Enable irq only when needed

Amadeusz Sławiński amadeuszx.slawinski at linux.intel.com
Fri Jun 10 11:33:34 CEST 2022


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.


More information about the Alsa-devel mailing list