[PATCH 2/2] ASoC: SDCA: Add better pm_runtime error handling in func probe

From: Maciej Strozek

Date: Thu Sep 24 2026 - 06:04:52 EST


Add a common error path in probe that balances the runtime PM reference.

Fixes: 3af1815a2f9c ("ASoC: SDCA: Add basic SDCA function driver")
Signed-off-by: Maciej Strozek <mstrozek@xxxxxxxxxxxxxxxxxxxxx>
---
sound/soc/sdca/sdca_class_function.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/sound/soc/sdca/sdca_class_function.c b/sound/soc/sdca/sdca_class_function.c
index 1a7167aafa910..bbc825e05e37a 100644
--- a/sound/soc/sdca/sdca_class_function.c
+++ b/sound/soc/sdca/sdca_class_function.c
@@ -389,20 +389,27 @@ static int class_function_probe(struct auxiliary_device *auxdev,

ret = devm_pm_runtime_enable(dev);
if (ret)
- return ret;
+ goto err_pm;

ret = class_function_boot(drv);
if (ret)
- return ret;
+ goto err_pm;

ret = devm_snd_soc_register_component(dev, cmp_drv, dais, num_dais);
- if (ret)
- return dev_err_probe(dev, ret, "failed to register component\n");
+ if (ret) {
+ dev_err_probe(dev, ret, "failed to register component\n");
+ goto err_pm;
+ }

pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);

return 0;
+
+err_pm:
+ pm_runtime_put_sync(dev);
+
+ return ret;
}

static void class_function_remove(struct auxiliary_device *auxdev)
--
2.47.3