summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2026-07-16 13:18:21 +0100
committerMark Brown <broonie@kernel.org>2026-07-16 13:18:21 +0100
commit7619cfb830ad9a6e34121b34838ab0992ce514a8 (patch)
tree063b658ff7b75280f25645a60e63f2d1d3ec96a5 /sound
parent73080a7976edde1c61f3654308ffe77c428ad6a2 (diff)
parent4fddda16f939b6ee53c6946ad71a2ea1fabf43c5 (diff)
downloadlinux-next-7619cfb830ad9a6e34121b34838ab0992ce514a8.tar.gz
linux-next-7619cfb830ad9a6e34121b34838ab0992ce514a8.zip
ASoC: codecs: lpass-{wsa,va}-macro: check clk_set_rate() return value
Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> says: clk_set_rate() returns 0 on success or a negative errno on failure but the WSA and VA macro probe functions are ignoring it. This series adds return value checking and bails out of probe on failure. This mirrors the same fix already posted for the TX and RX macros [1]. [1] https://lore.kernel.org/all/20260707-xo-sd-codec-tx-rx-v2-3-f61b4622f97f@oss.qualcomm.com/ Link: https://patch.msgid.link/20260715-xo-sd-codec-wsa-va-clk-set-rate-v2-0-16ca64c2b929@oss.qualcomm.com
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/lpass-va-macro.c8
-rw-r--r--sound/soc/codecs/lpass-wsa-macro.c9
2 files changed, 13 insertions, 4 deletions
diff --git a/sound/soc/codecs/lpass-va-macro.c b/sound/soc/codecs/lpass-va-macro.c
index 946051698420..dbc5795b9273 100644
--- a/sound/soc/codecs/lpass-va-macro.c
+++ b/sound/soc/codecs/lpass-va-macro.c
@@ -1605,7 +1605,9 @@ static int va_macro_probe(struct platform_device *pdev)
va->has_npl_clk = data->has_npl_clk;
/* mclk rate */
- clk_set_rate(va->mclk, 2 * VA_MACRO_MCLK_FREQ);
+ ret = clk_set_rate(va->mclk, 2 * VA_MACRO_MCLK_FREQ);
+ if (ret)
+ goto err;
if (va->has_npl_clk) {
va->npl = devm_clk_get(dev, "npl");
@@ -1614,7 +1616,9 @@ static int va_macro_probe(struct platform_device *pdev)
goto err;
}
- clk_set_rate(va->npl, 2 * VA_MACRO_MCLK_FREQ);
+ ret = clk_set_rate(va->npl, 2 * VA_MACRO_MCLK_FREQ);
+ if (ret)
+ goto err;
}
ret = devm_pm_clk_create(dev);
diff --git a/sound/soc/codecs/lpass-wsa-macro.c b/sound/soc/codecs/lpass-wsa-macro.c
index f511816aa4a0..fc9e0a37c042 100644
--- a/sound/soc/codecs/lpass-wsa-macro.c
+++ b/sound/soc/codecs/lpass-wsa-macro.c
@@ -2773,8 +2773,13 @@ static int wsa_macro_probe(struct platform_device *pdev)
wsa->dev = dev;
/* set MCLK and NPL rates */
- clk_set_rate(wsa->mclk, WSA_MACRO_MCLK_FREQ);
- clk_set_rate(wsa->npl, WSA_MACRO_MCLK_FREQ);
+ ret = clk_set_rate(wsa->mclk, WSA_MACRO_MCLK_FREQ);
+ if (ret)
+ return ret;
+
+ ret = clk_set_rate(wsa->npl, WSA_MACRO_MCLK_FREQ);
+ if (ret)
+ return ret;
ret = devm_pm_clk_create(dev);
if (ret)