Re: [PATCH v2 07/13] ASoC: mediatek: mt8189: Propagate runtime resume errors
From: Bui Duc Phuc
Date: Tue Sep 15 2026 - 04:45:37 EST
Hi Angelo,
> >
> > In the probe function, there's a call to devm_regmap_init_mmio(), and that's being
> > correctly checked for error as in, if any, probe will fail.
> >
> > So... during suspend or resume or anywhere else in this driver really, the regmap
> > pointer can't be NULL.
> > The right thing to do here would be to just remove the useless check.
> >
> > Mind you, this comment applies to some other commits in this series as well.
> >
I found something interesting:
in mt8189_afe_pcm_dev_probe()
-------------------------------------
afe->runtime_resume = mt8189_afe_runtime_resume;
afe->runtime_suspend = mt8189_afe_runtime_suspend;
ret = devm_pm_runtime_enable(dev);
if (ret)
return ret;
/*
* Audio device is part of genpd. Registering it as a syscore device
* ensure the proper power-on sequence of the AFE device.
*/
dev_pm_syscore_device(dev, true);
/* enable clock for regcache get default value from hw */
ret = pm_runtime_resume_and_get(dev);
if (ret)
return dev_err_probe(dev, ret, "failed to resume device\n");
afe->regmap = devm_regmap_init_mmio(dev, afe->base_addr,
&mt8189_afe_regmap_config);
if (IS_ERR(afe->regmap)) {
ret = PTR_ERR(afe->regmap);
goto err_pm_put;
}
-----------------------------------------------
Here, it looks like mt8189_afe_runtime_resume() gets called
before devm_regmap_init_mmio().
So if we remove this part:
---------------------
if (!afe->regmap) {
dev_warn(afe->dev, "skip regmap\n");
return 0;
}
-----------------------
from mt8189_afe_runtime_resume(), that could actually trigger the bug
we were just discussing.
Best regards,
Phuc