[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ae65a407-9c39-c48a-0cb9-44b3eacda410@redhat.com>
Date: Tue, 28 Mar 2023 12:15:02 +0200
From: Hans de Goede <hdegoede@...hat.com>
To: Cristian Ciocaltea <cristian.ciocaltea@...labora.com>,
Liam Girdwood <lgirdwood@...il.com>,
Mark Brown <broonie@...nel.org>,
Jaroslav Kysela <perex@...ex.cz>, Takashi Iwai <tiwai@...e.com>
Cc: alsa-devel@...a-project.org, linux-kernel@...r.kernel.org,
kernel@...labora.com
Subject: Re: [PATCH] ASoC: es8316: Handle optional IRQ assignment
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@...labora.com>
Thanks, patch looks good to me:
Reviewed-by: Hans de Goede <hdegoede@...hat.com>
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,
Powered by blists - more mailing lists