ASoC: codecs: msm8916-wcd-analog: Properly handle probe errors
authorStephan Gerhold <stephan@gerhold.net>
Tue, 18 Jul 2023 11:40:17 +0000 (13:40 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 20 Jul 2023 12:50:54 +0000 (13:50 +0100)
The probe() function fails with an error for platform_get_irq_byname()
but only logs when devm_request_threaded_irq() fails. Make this
consistent and fail to probe in that case as well. In practice this
should never happen unless something is really wrong.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20230718-pm8916-mclk-v1-5-4b4a58b4240a@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/msm8916-wcd-analog.c

index d4456a7..9ca3818 100644 (file)
@@ -1216,8 +1216,10 @@ static int pm8916_wcd_analog_spmi_probe(struct platform_device *pdev)
                               IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING |
                               IRQF_ONESHOT,
                               "mbhc switch irq", priv);
-       if (ret)
+       if (ret) {
                dev_err(dev, "cannot request mbhc switch irq\n");
+               return ret;
+       }
 
        if (priv->mbhc_btn_enabled) {
                irq = platform_get_irq_byname(pdev, "mbhc_but_press_det");
@@ -1229,8 +1231,10 @@ static int pm8916_wcd_analog_spmi_probe(struct platform_device *pdev)
                                       IRQF_TRIGGER_RISING |
                                       IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
                                       "mbhc btn press irq", priv);
-               if (ret)
+               if (ret) {
                        dev_err(dev, "cannot request mbhc button press irq\n");
+                       return ret;
+               }
 
                irq = platform_get_irq_byname(pdev, "mbhc_but_rel_det");
                if (irq < 0)
@@ -1241,9 +1245,10 @@ static int pm8916_wcd_analog_spmi_probe(struct platform_device *pdev)
                                       IRQF_TRIGGER_RISING |
                                       IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
                                       "mbhc btn release irq", priv);
-               if (ret)
+               if (ret) {
                        dev_err(dev, "cannot request mbhc button release irq\n");
-
+                       return ret;
+               }
        }
 
        dev_set_drvdata(dev, priv);