Re: [PATCH] ASoC: es8316: Handle optional IRQ assignment

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 3/28/23 11:49, Cristian Ciocaltea wrote:
> The driver is able to work fine without relying on a mandatory interrupt
> being assigned to the I2C device. This is only needed when making use of
> the jack-detect support.
> 
> However, the following warning message is always emitted when there is
> no such interrupt available:
> 
>   es8316 0-0011: Failed to get IRQ 0: -22
> 
> Do not attempt to request an IRQ if it is not available/valid. This also
> ensures the rather misleading message is not displayed anymore.
> 
> Also note the IRQ validation relies on commit dab472eb931bc291 ("i2c /
> ACPI: Use 0 to indicate that device does not have interrupt assigned").
> 
> Fixes: 822257661031 ("ASoC: es8316: Add jack-detect support")
> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@xxxxxxxxxxxxx>

Thanks, patch looks good to me:

Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx>

Regards,

Hans



> ---
>  sound/soc/codecs/es8316.c | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/sound/soc/codecs/es8316.c b/sound/soc/codecs/es8316.c
> index 056c3082fe02..f7d7a9c91e04 100644
> --- a/sound/soc/codecs/es8316.c
> +++ b/sound/soc/codecs/es8316.c
> @@ -842,12 +842,14 @@ static int es8316_i2c_probe(struct i2c_client *i2c_client)
>  	es8316->irq = i2c_client->irq;
>  	mutex_init(&es8316->lock);
>  
> -	ret = devm_request_threaded_irq(dev, es8316->irq, NULL, es8316_irq,
> -					IRQF_TRIGGER_HIGH | IRQF_ONESHOT | IRQF_NO_AUTOEN,
> -					"es8316", es8316);
> -	if (ret) {
> -		dev_warn(dev, "Failed to get IRQ %d: %d\n", es8316->irq, ret);
> -		es8316->irq = -ENXIO;
> +	if (es8316->irq > 0) {
> +		ret = devm_request_threaded_irq(dev, es8316->irq, NULL, es8316_irq,
> +						IRQF_TRIGGER_HIGH | IRQF_ONESHOT | IRQF_NO_AUTOEN,
> +						"es8316", es8316);
> +		if (ret) {
> +			dev_warn(dev, "Failed to get IRQ %d: %d\n", es8316->irq, ret);
> +			es8316->irq = -ENXIO;
> +		}
>  	}
>  
>  	return devm_snd_soc_register_component(&i2c_client->dev,




[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux