On 7/7/21 10:04 PM, Pierre-Louis Bossart wrote: > >> +static int snd_acp5x_suspend(struct device *dev) >> +{ >> + int ret; >> + struct acp5x_dev_data *adata; >> + >> + adata = dev_get_drvdata(dev); >> + ret = acp5x_deinit(adata->acp5x_base); >> + if (ret) >> + dev_err(dev, "ACP de-init failed\n"); >> + else >> + dev_dbg(dev, "ACP de-initialized\n"); >> + >> + return ret; >> +} >> + >> +static int snd_acp5x_resume(struct device *dev) >> +{ >> + int ret; >> + struct acp5x_dev_data *adata; >> + >> + adata = dev_get_drvdata(dev); >> + ret = acp5x_init(adata->acp5x_base); >> + if (ret) { >> + dev_err(dev, "ACP init failed\n"); >> + return ret; >> + } >> + return 0; >> +} >> + >> +static const struct dev_pm_ops acp5x_pm = { >> + .runtime_suspend = snd_acp5x_suspend, >> + .runtime_resume = snd_acp5x_resume, >> + .resume = snd_acp5x_resume, > > use SET_SYSTEM_SLEEP_PM_OPS and SET_RUNTIME_PM_OPS? We will modify the code. > > also not clear why you don't have a .suspend here It was a miss. we will add .suspend callback which invokes same callback "snd_acp5x_suspend". > > And to avoid warnings use __maybe_unused for those callbacks when PM is disabled? > Agreed. We will modify the code and post the new version. >