diff options
author | Stephan Gerhold <stephan@gerhold.net> | 2023-07-18 13:40:17 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2023-07-20 13:50:54 +0100 |
commit | 5c0f9652da47061ed3f7815c1dfeb205c545ce54 (patch) | |
tree | 9bfab4f86dc0f75cf391cd6f0ec74e8cb375b417 /sound/soc/codecs/msm8916-wcd-analog.c | |
parent | 97f29c1a6143762626f4f9bd9fc2f8a2282b9dcd (diff) | |
download | lwn-5c0f9652da47061ed3f7815c1dfeb205c545ce54.tar.gz lwn-5c0f9652da47061ed3f7815c1dfeb205c545ce54.zip |
ASoC: codecs: msm8916-wcd-analog: Properly handle probe errors
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>
Diffstat (limited to 'sound/soc/codecs/msm8916-wcd-analog.c')
-rw-r--r-- | sound/soc/codecs/msm8916-wcd-analog.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/sound/soc/codecs/msm8916-wcd-analog.c b/sound/soc/codecs/msm8916-wcd-analog.c index d4456a714c97..9ca381812975 100644 --- a/sound/soc/codecs/msm8916-wcd-analog.c +++ b/sound/soc/codecs/msm8916-wcd-analog.c @@ -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); |