ASoC: rt5640: Silence warning message about missing interrupt
authorDmitry Osipenko <digetx@gmail.com>
Mon, 2 Aug 2021 18:52:58 +0000 (21:52 +0300)
committerMark Brown <broonie@kernel.org>
Thu, 5 Aug 2021 19:18:16 +0000 (20:18 +0100)
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@gmail.com>
Link: https://lore.kernel.org/r/20210802185258.1881-1-digetx@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5640.c

index 9523f4b5c800c9eb4fcc7d962e53aeb51d1e0120..0f5087a7644b69cc985c960331c05c66998737f9 100644 (file)
@@ -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;
        }