* [RESEND PATCH 1/3] ASoC: codecs: lpass: Discard pm_runtime_put_autosuspend() return values
@ 2026-11-12 19:19 Brian Norris
2026-11-12 19:19 ` [RESEND PATCH 2/3] ASoC: intel: atom: Discard pm_runtime_put_autosuspend() return value Brian Norris
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Brian Norris @ 2026-11-12 19:19 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: Cezary Rojewski, Peter Ujfalusi, Bard Liao, Daniel Baluta,
linux-pm, linux-sound, Srinivas Kandagatla, Vijendar Mukunda,
Kai Vehmanen, Pierre-Louis Bossart, Brian Norris, linux-arm-msm
Printing warning messages on pm_runtime_put_autosuspend() returning
negative values is not particularly useful.
Returning an error code from pm_runtime_put_autosuspend() merely means
that it has not queued up a timer or work item to check whether or not
the device can be suspended and there are many perfectly valid
situations in which that can happen, like after writing "on" to the
device's runtime PM "control" attribute in sysfs for one example.
Accordingly, update the LPASS macro codec drivers to simply discard the
return value of pm_runtime_put_autosuspend().
This will facilitate a planned change of the
pm_runtime_put_autosuspend() return type to void in the future, similar
to commit 3afd8df02433 ("PM: runtime: Change pm_runtime_put() return
type to void").
Signed-off-by: Brian Norris <briannorris@chromium.org>
---
This patch was originally sent as part of a larger series here:
https://lore.kernel.org/all/20261006161337.9.I5cd238b1d4516d4d6980565e0a4e1b83d9abce63@changeid/
I expect it should be merged by subsystem maintainers, and we can make
the return type change later.
sound/soc/codecs/lpass-rx-macro.c | 4 +---
sound/soc/codecs/lpass-tx-macro.c | 4 +---
sound/soc/codecs/lpass-va-macro.c | 17 ++++-------------
sound/soc/codecs/lpass-wsa-macro.c | 8 ++------
4 files changed, 8 insertions(+), 25 deletions(-)
diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c
index ab8a1c2b0489..c703275fc442 100644
--- a/sound/soc/codecs/lpass-rx-macro.c
+++ b/sound/soc/codecs/lpass-rx-macro.c
@@ -3919,9 +3919,7 @@ static int rx_macro_probe(struct platform_device *pdev)
if (ret)
goto err_rpm_put;
- ret = pm_runtime_put_autosuspend(dev);
- if (ret < 0)
- dev_warn(dev, "runtime PM put failed after probe: %d\n", ret);
+ pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c
index def7dcc2058d..26e8486ce041 100644
--- a/sound/soc/codecs/lpass-tx-macro.c
+++ b/sound/soc/codecs/lpass-tx-macro.c
@@ -2370,9 +2370,7 @@ static int tx_macro_probe(struct platform_device *pdev)
if (ret)
goto err_rpm_put;
- ret = pm_runtime_put_autosuspend(dev);
- if (ret < 0)
- dev_warn(dev, "runtime PM put failed after probe: %d\n", ret);
+ pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/sound/soc/codecs/lpass-va-macro.c b/sound/soc/codecs/lpass-va-macro.c
index 61b24a1e4dde..a090b3e7b5e1 100644
--- a/sound/soc/codecs/lpass-va-macro.c
+++ b/sound/soc/codecs/lpass-va-macro.c
@@ -1352,7 +1352,7 @@ static int fsgen_gate_enable(struct clk_hw *hw)
{
struct va_macro *va = to_va_macro(hw);
struct regmap *regmap = va->regmap;
- int ret, rpm_ret;
+ int ret;
ret = pm_runtime_resume_and_get(va->dev);
if (ret < 0)
@@ -1360,11 +1360,7 @@ static int fsgen_gate_enable(struct clk_hw *hw)
ret = va_macro_mclk_enable(va, true);
if (ret) {
- rpm_ret = pm_runtime_put_autosuspend(va->dev);
- if (rpm_ret < 0)
- dev_warn(va->dev,
- "runtime PM put failed in fsgen enable unwind: %d\n",
- rpm_ret);
+ pm_runtime_put_autosuspend(va->dev);
return ret;
}
if (va->has_swr_master)
@@ -1378,7 +1374,6 @@ static void fsgen_gate_disable(struct clk_hw *hw)
{
struct va_macro *va = to_va_macro(hw);
struct regmap *regmap = va->regmap;
- int ret;
if (va->has_swr_master)
regmap_update_bits(regmap, CDC_VA_CLK_RST_CTRL_SWR_CONTROL,
@@ -1386,9 +1381,7 @@ static void fsgen_gate_disable(struct clk_hw *hw)
va_macro_mclk_enable(va, false);
- ret = pm_runtime_put_autosuspend(va->dev);
- if (ret < 0)
- dev_warn(va->dev, "runtime PM put failed in fsgen disable: %d\n", ret);
+ pm_runtime_put_autosuspend(va->dev);
}
static int fsgen_gate_is_enabled(struct clk_hw *hw)
@@ -1693,9 +1686,7 @@ static int va_macro_probe(struct platform_device *pdev)
goto err_rpm_put;
}
- rpm_ret = pm_runtime_put_autosuspend(dev);
- if (rpm_ret < 0)
- dev_warn(dev, "runtime PM put failed after probe: %d\n", rpm_ret);
+ pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/sound/soc/codecs/lpass-wsa-macro.c b/sound/soc/codecs/lpass-wsa-macro.c
index e3fe8d0af8be..6d330bd4eddb 100644
--- a/sound/soc/codecs/lpass-wsa-macro.c
+++ b/sound/soc/codecs/lpass-wsa-macro.c
@@ -2559,9 +2559,7 @@ static int wsa_swrm_clock(struct wsa_macro *wsa, bool enable)
CDC_WSA_SWR_CLK_EN_MASK, 0);
wsa_macro_mclk_enable(wsa, false);
- ret = pm_runtime_put_autosuspend(wsa->dev);
- if (ret < 0)
- dev_warn(wsa->dev, "runtime PM put failed: %d\n", ret);
+ pm_runtime_put_autosuspend(wsa->dev);
}
return 0;
@@ -2833,9 +2831,7 @@ static int wsa_macro_probe(struct platform_device *pdev)
if (ret)
goto err_rpm_put;
- ret = pm_runtime_put_autosuspend(dev);
- if (ret < 0)
- dev_warn(dev, "runtime PM put failed after probe: %d\n", ret);
+ pm_runtime_put_autosuspend(dev);
return 0;
err_rpm_put:
--
2.56.0.611.g1030f0b940-goog
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [RESEND PATCH 2/3] ASoC: intel: atom: Discard pm_runtime_put_autosuspend() return value
2026-11-12 19:19 [RESEND PATCH 1/3] ASoC: codecs: lpass: Discard pm_runtime_put_autosuspend() return values Brian Norris
@ 2026-11-12 19:19 ` Brian Norris
2026-11-12 19:19 ` [RESEND PATCH 3/3] ASoC: SOF: Discard pm_runtime_put_autosuspend() return values Brian Norris
2026-11-12 19:28 ` [RESEND PATCH 1/3] ASoC: codecs: lpass: " sashiko-bot
2 siblings, 0 replies; 4+ messages in thread
From: Brian Norris @ 2026-11-12 19:19 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: Cezary Rojewski, Peter Ujfalusi, Bard Liao, Daniel Baluta,
linux-pm, linux-sound, Srinivas Kandagatla, Vijendar Mukunda,
Kai Vehmanen, Pierre-Louis Bossart, Brian Norris, Liam Girdwood
Propagating the pm_runtime_put_autosuspend() return value to callers is
not particularly useful.
Returning an error code from pm_runtime_put_autosuspend() merely means
that it has not queued up a timer or work item to check whether or not
the device can be suspended and there are many perfectly valid
situations in which that can happen, like after writing "on" to the
device's runtime PM "control" attribute in sysfs for one example.
Modify sst_pm_runtime_put() to discard the pm_runtime_put_autosuspend()
return value, change its return type to void, and update its callers in
sst_power_control() accordingly.
Note that in one error path for sst_power_control(), we would previously
overwrite one error code (from "FW download fail") with the return code
from pm_runtime_put_autosuspend(). This was probably an unexpected
behavior, which is now changed to propagate the sst_load_fw() error
code.
This will facilitate a planned change of the
pm_runtime_put_autosuspend() return type to void in the future, similar
to commit 3afd8df02433 ("PM: runtime: Change pm_runtime_put() return
type to void").
Signed-off-by: Brian Norris <briannorris@chromium.org>
Acked-by: Cezary Rojewski <cezary.rojewski@intel.com>
---
This patch was originally sent as part of a larger series here:
https://lore.kernel.org/all/20261006161337.10.Ia8792ce5d04a55522d84afc8e71cc879721a5f49@changeid/
I expect it should be merged by subsystem maintainers, and we can make
the return type change later.
sound/soc/intel/atom/sst/sst.h | 2 +-
sound/soc/intel/atom/sst/sst_drv_interface.c | 4 ++--
sound/soc/intel/atom/sst/sst_pvt.c | 9 ++-------
3 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/sound/soc/intel/atom/sst/sst.h b/sound/soc/intel/atom/sst/sst.h
index e24d9dad7ef6..90a266431e5f 100644
--- a/sound/soc/intel/atom/sst/sst.h
+++ b/sound/soc/intel/atom/sst/sst.h
@@ -497,7 +497,7 @@ int get_stream_id_mrfld(struct intel_sst_drv *sst_drv_ctx,
u32 relocate_imr_addr_mrfld(u32 base_addr);
void sst_add_to_dispatch_list_and_post(struct intel_sst_drv *sst,
struct ipc_post *msg);
-int sst_pm_runtime_put(struct intel_sst_drv *sst_drv);
+void sst_pm_runtime_put(struct intel_sst_drv *sst_drv);
int sst_shim_write(void __iomem *addr, int offset, int value);
u32 sst_shim_read(void __iomem *addr, int offset);
u64 sst_reg_read64(void __iomem *addr, int offset);
diff --git a/sound/soc/intel/atom/sst/sst_drv_interface.c b/sound/soc/intel/atom/sst/sst_drv_interface.c
index 2646c4632ca1..c99697b975d8 100644
--- a/sound/soc/intel/atom/sst/sst_drv_interface.c
+++ b/sound/soc/intel/atom/sst/sst_drv_interface.c
@@ -135,13 +135,13 @@ static int sst_power_control(struct device *dev, bool state)
if (ret) {
dev_err(dev, "FW download fail %d\n", ret);
sst_set_fw_state_locked(ctx, SST_RESET);
- ret = sst_pm_runtime_put(ctx);
+ sst_pm_runtime_put(ctx);
}
}
} else {
usage_count = GET_USAGE_COUNT(dev);
dev_dbg(ctx->dev, "Disable: pm usage count: %d\n", usage_count);
- return sst_pm_runtime_put(ctx);
+ sst_pm_runtime_put(ctx);
}
return ret;
}
diff --git a/sound/soc/intel/atom/sst/sst_pvt.c b/sound/soc/intel/atom/sst/sst_pvt.c
index 0b0cfd70efbc..913e232bf6ed 100644
--- a/sound/soc/intel/atom/sst/sst_pvt.c
+++ b/sound/soc/intel/atom/sst/sst_pvt.c
@@ -255,14 +255,9 @@ int sst_prepare_and_post_msg(struct intel_sst_drv *sst,
return ret;
}
-int sst_pm_runtime_put(struct intel_sst_drv *sst_drv)
+void sst_pm_runtime_put(struct intel_sst_drv *sst_drv)
{
- int ret;
-
- ret = pm_runtime_put_autosuspend(sst_drv->dev);
- if (ret < 0)
- return ret;
- return 0;
+ pm_runtime_put_autosuspend(sst_drv->dev);
}
void sst_fill_header_mrfld(union ipc_header_mrfld *header,
--
2.56.0.611.g1030f0b940-goog
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [RESEND PATCH 3/3] ASoC: SOF: Discard pm_runtime_put_autosuspend() return values
2026-11-12 19:19 [RESEND PATCH 1/3] ASoC: codecs: lpass: Discard pm_runtime_put_autosuspend() return values Brian Norris
2026-11-12 19:19 ` [RESEND PATCH 2/3] ASoC: intel: atom: Discard pm_runtime_put_autosuspend() return value Brian Norris
@ 2026-11-12 19:19 ` Brian Norris
2026-11-12 19:28 ` [RESEND PATCH 1/3] ASoC: codecs: lpass: " sashiko-bot
2 siblings, 0 replies; 4+ messages in thread
From: Brian Norris @ 2026-11-12 19:19 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: Cezary Rojewski, Peter Ujfalusi, Bard Liao, Daniel Baluta,
linux-pm, linux-sound, Srinivas Kandagatla, Vijendar Mukunda,
Kai Vehmanen, Pierre-Louis Bossart, Brian Norris,
sound-open-firmware
Printing error messages on pm_runtime_put_autosuspend() returning
negative values is not particularly useful.
Returning an error code from pm_runtime_put_autosuspend() merely means
that it has not queued up a timer or work item to check whether or not
the device can be suspended and there are many perfectly valid
situations in which that can happen, like after writing "on" to the
device's runtime PM "control" attribute in sysfs for one example.
Accordingly, update the SOF driver to simply discard the return value of
pm_runtime_put_autosuspend().
This will facilitate a planned change of the
pm_runtime_put_autosuspend() return type to void in the future, similar
to commit 3afd8df02433 ("PM: runtime: Change pm_runtime_put() return
type to void").
Signed-off-by: Brian Norris <briannorris@chromium.org>
---
This patch was originally sent as part of a larger series here:
https://lore.kernel.org/all/20261006161337.11.I90762189ee6537c5deb0725ede365d641607377e@changeid/
I expect it should be merged by subsystem maintainers, and we can make
the return type change later.
sound/soc/sof/control.c | 6 ++----
sound/soc/sof/sof-client-ipc-flood-test.c | 5 +----
sound/soc/sof/sof-client-ipc-kernel-injector.c | 4 +---
sound/soc/sof/sof-client-ipc-msg-injector.c | 6 ++----
sound/soc/sof/sof-client-probes.c | 18 ++++++------------
5 files changed, 12 insertions(+), 27 deletions(-)
diff --git a/sound/soc/sof/control.c b/sound/soc/sof/control.c
index 74d997a4f620..8718c293c5b9 100644
--- a/sound/soc/sof/control.c
+++ b/sound/soc/sof/control.c
@@ -185,7 +185,7 @@ int snd_sof_bytes_ext_volatile_get(struct snd_kcontrol *kcontrol, unsigned int _
struct snd_soc_component *scomp = scontrol->scomp;
struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
const struct sof_ipc_tplg_ops *tplg_ops = sof_ipc_get_ops(sdev, tplg);
- int ret, err;
+ int ret;
/* ignore the ext_volatile_get call if the callbacks are not provided */
if (!tplg_ops || !tplg_ops->control ||
@@ -205,9 +205,7 @@ int snd_sof_bytes_ext_volatile_get(struct snd_kcontrol *kcontrol, unsigned int _
binary_data,
size);
- err = pm_runtime_put_autosuspend(scomp->dev);
- if (err < 0)
- dev_err_ratelimited(scomp->dev, "%s: failed to idle %d\n", __func__, err);
+ pm_runtime_put_autosuspend(scomp->dev);
return ret;
}
diff --git a/sound/soc/sof/sof-client-ipc-flood-test.c b/sound/soc/sof/sof-client-ipc-flood-test.c
index 0e8a0262b795..b0d8419addc7 100644
--- a/sound/soc/sof/sof-client-ipc-flood-test.c
+++ b/sound/soc/sof/sof-client-ipc-flood-test.c
@@ -157,7 +157,6 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *file, const char __user *buf
unsigned long ipc_duration_ms = 0;
bool flood_duration_test = false;
unsigned long ipc_count = 0;
- int err;
char *string;
int ret;
@@ -223,9 +222,7 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *file, const char __user *buf
ret = sof_debug_ipc_flood_test(cdev, flood_duration_test,
ipc_duration_ms, ipc_count);
- err = pm_runtime_put_autosuspend(dev);
- if (err < 0)
- dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err);
+ pm_runtime_put_autosuspend(dev);
/* return count if test is successful */
if (ret >= 0)
diff --git a/sound/soc/sof/sof-client-ipc-kernel-injector.c b/sound/soc/sof/sof-client-ipc-kernel-injector.c
index b5bca9258f42..16deb117b7b9 100644
--- a/sound/soc/sof/sof-client-ipc-kernel-injector.c
+++ b/sound/soc/sof/sof-client-ipc-kernel-injector.c
@@ -66,9 +66,7 @@ static ssize_t sof_kernel_msg_inject_dfs_write(struct file *file, const char __u
if (!ret)
sof_client_ipc_rx_message(cdev, hdr, priv->kernel_buffer);
- ret = pm_runtime_put_autosuspend(dev);
- if (ret < 0)
- dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", ret);
+ pm_runtime_put_autosuspend(dev);
return count;
};
diff --git a/sound/soc/sof/sof-client-ipc-msg-injector.c b/sound/soc/sof/sof-client-ipc-msg-injector.c
index c98307cf7eee..bd10fb39457a 100644
--- a/sound/soc/sof/sof-client-ipc-msg-injector.c
+++ b/sound/soc/sof/sof-client-ipc-msg-injector.c
@@ -122,7 +122,7 @@ static int sof_msg_inject_send_message(struct sof_client_dev *cdev)
{
struct sof_msg_inject_priv *priv = cdev->data;
struct device *dev = &cdev->auxdev.dev;
- int ret, err;
+ int ret;
ret = pm_runtime_resume_and_get(dev);
if (ret < 0 && ret != -EACCES) {
@@ -140,9 +140,7 @@ static int sof_msg_inject_send_message(struct sof_client_dev *cdev)
dev_err(dev, "IPC message send failed: %d\n", ret);
}
- err = pm_runtime_put_autosuspend(dev);
- if (err < 0)
- dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err);
+ pm_runtime_put_autosuspend(dev);
return ret;
}
diff --git a/sound/soc/sof/sof-client-probes.c b/sound/soc/sof/sof-client-probes.c
index 286486945abd..b3ae232e578a 100644
--- a/sound/soc/sof/sof-client-probes.c
+++ b/sound/soc/sof/sof-client-probes.c
@@ -211,7 +211,7 @@ static ssize_t sof_probes_dfs_points_read(struct file *file, char __user *to,
int remaining, offset;
size_t num_desc;
char *buf;
- int i, ret, err;
+ int i, ret;
if (priv->extractor_stream_tag == SOF_PROBES_INVALID_NODE_ID) {
dev_warn(dev, "no extractor stream running\n");
@@ -258,9 +258,7 @@ static ssize_t sof_probes_dfs_points_read(struct file *file, char __user *to,
kfree(desc);
pm_error:
- err = pm_runtime_put_autosuspend(dev);
- if (err < 0)
- dev_err_ratelimited(dev, "debugfs read failed to idle %d\n", err);
+ pm_runtime_put_autosuspend(dev);
exit:
kfree(buf);
@@ -294,7 +292,7 @@ sof_probes_dfs_points_write(struct file *file, const char __user *from,
struct sof_probe_point_desc *desc;
u32 num_elems, *array;
size_t bytes;
- int ret, err;
+ int ret;
if (priv->extractor_stream_tag == SOF_PROBES_INVALID_NODE_ID) {
dev_warn(dev, "no extractor stream running\n");
@@ -327,9 +325,7 @@ sof_probes_dfs_points_write(struct file *file, const char __user *from,
ret = count;
}
- err = pm_runtime_put_autosuspend(dev);
- if (err < 0)
- dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err);
+ pm_runtime_put_autosuspend(dev);
exit:
kfree(array);
return ret;
@@ -360,7 +356,7 @@ sof_probes_dfs_points_remove_write(struct file *file, const char __user *from,
struct sof_probes_priv *priv = cdev->data;
const struct sof_probes_ipc_ops *ipc = priv->ipc_ops;
struct device *dev = &cdev->auxdev.dev;
- int ret, err;
+ int ret;
u32 *array;
if (priv->extractor_stream_tag == SOF_PROBES_INVALID_NODE_ID) {
@@ -385,9 +381,7 @@ sof_probes_dfs_points_remove_write(struct file *file, const char __user *from,
ret = count;
}
- err = pm_runtime_put_autosuspend(dev);
- if (err < 0)
- dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err);
+ pm_runtime_put_autosuspend(dev);
exit:
kfree(array);
return ret;
--
2.56.0.611.g1030f0b940-goog
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [RESEND PATCH 1/3] ASoC: codecs: lpass: Discard pm_runtime_put_autosuspend() return values
2026-11-12 19:19 [RESEND PATCH 1/3] ASoC: codecs: lpass: Discard pm_runtime_put_autosuspend() return values Brian Norris
2026-11-12 19:19 ` [RESEND PATCH 2/3] ASoC: intel: atom: Discard pm_runtime_put_autosuspend() return value Brian Norris
2026-11-12 19:19 ` [RESEND PATCH 3/3] ASoC: SOF: Discard pm_runtime_put_autosuspend() return values Brian Norris
@ 2026-11-12 19:28 ` sashiko-bot
2 siblings, 0 replies; 4+ messages in thread
From: sashiko-bot @ 2026-11-12 19:28 UTC (permalink / raw)
To: Brian Norris; +Cc: linux-sound
Thank you for your contribution! Sashiko AI review found no new issues
in this patch, but noticed 1 related pre-existing issue it does not
introduce:
- [Medium] ASoC: codecs: lpass-rx-macro: missing probe deferral in
rx_macro_probe() [1]
--
commit 0df95183a384e1e17bae628755bf6ae48d5ffec1
Author: Brian Norris <briannorris@chromium.org>
ASoC: codecs: lpass: Discard pm_runtime_put_autosuspend() return values
This commit drops error checks and warning messages on the return value of
pm_runtime_put_autosuspend() across the LPASS macro codec drivers.
> diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c
> index ab8a1c2b0489b..c703275fc4429 100644
> --- a/sound/soc/codecs/lpass-rx-macro.c
> +++ b/sound/soc/codecs/lpass-rx-macro.c
> @@ -3919,9 +3919,7 @@ static int rx_macro_probe(struct platform_device *pdev)
> if (ret)
> goto err_rpm_put;
>
> - ret = pm_runtime_put_autosuspend(dev);
> - if (ret < 0)
> - dev_warn(dev, "runtime PM put failed after probe: %d\n", ret);
> + pm_runtime_put_autosuspend(dev);
>
> return 0;
>
[Severity: Medium]
This problem wasn't introduced by this patch, but can rx_macro_probe() fail
permanently [1] when it runs before the lpass-va-macro driver has
probed?
sound/soc/codecs/lpass-rx-macro.c:rx_macro_probe() {
...
rx->codec_version = lpass_macro_get_codec_version();
...
switch (rx->codec_version) {
...
default:
dev_err(dev, "Unsupported Codec version (%d)\n", rx->codec_version);
return -EINVAL;
}
...
}
Until va_macro_probe() sets the codec version, lpass_macro_get_codec_version()
returns LPASS_CODEC_VERSION_UNKNOWN (0). Returning -EINVAL instead of
-EPROBE_DEFER causes the driver core to abandon probing rather than retrying
once the VA macro driver probes, breaking audio playback.
[1] https://sashiko.dev/#/bug/linux-263ddc0b-b9b3-4b30-bcac-0a188381f702
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261112111937.RESEND.1.I5cd238b1d4516d4d6980565e0a4e1b83d9abce63@changeid?part=1
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-11-12 19:28 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-12 19:19 [RESEND PATCH 1/3] ASoC: codecs: lpass: Discard pm_runtime_put_autosuspend() return values Brian Norris
2026-11-12 19:19 ` [RESEND PATCH 2/3] ASoC: intel: atom: Discard pm_runtime_put_autosuspend() return value Brian Norris
2026-11-12 19:19 ` [RESEND PATCH 3/3] ASoC: SOF: Discard pm_runtime_put_autosuspend() return values Brian Norris
2026-11-12 19:28 ` [RESEND PATCH 1/3] ASoC: codecs: lpass: " sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox