[PATCH v1] ASoC: rt5640: Silence warning message about missing interrupt

Dmitry Osipenko digetx at gmail.com
Mon Aug 2 20:52:58 CEST 2021


Interrupt is optional for the RT5640 codec. Nexus 7 doesn't use interrupt,
this results in a noisy warning message that looks like a error condition.
Make interrupt explicitly optional to silence the message, use modern
IRQF_NO_AUTOEN flag and correct the reg[q]uest typo in the message.

Signed-off-by: Dmitry Osipenko <digetx at gmail.com>
---
 sound/soc/codecs/rt5640.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c
index 9523f4b5c800..0f5087a7644b 100644
--- a/sound/soc/codecs/rt5640.c
+++ b/sound/soc/codecs/rt5640.c
@@ -2836,15 +2836,18 @@ static int rt5640_i2c_probe(struct i2c_client *i2c,
 	if (ret)
 		return ret;
 
-	ret = devm_request_irq(&i2c->dev, rt5640->irq, rt5640_irq,
-			       IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING
-			       | IRQF_ONESHOT, "rt5640", rt5640);
-	if (ret == 0) {
-		/* Gets re-enabled by rt5640_set_jack() */
-		disable_irq(rt5640->irq);
+	if (rt5640->irq) {
+		/* enabled by rt5640_set_jack() */
+		ret = devm_request_irq(&i2c->dev, rt5640->irq, rt5640_irq,
+				       IRQF_TRIGGER_RISING | IRQF_NO_AUTOEN |
+				       IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
+				       "rt5640", rt5640);
+		if (ret) {
+			dev_err(&i2c->dev, "Failed to request IRQ %d: %d\n",
+				rt5640->irq, ret);
+			return ret;
+		}
 	} else {
-		dev_warn(&i2c->dev, "Failed to reguest IRQ %d: %d\n",
-			 rt5640->irq, ret);
 		rt5640->irq = -ENXIO;
 	}
 
-- 
2.32.0



More information about the Alsa-devel mailing list