On 7/14/21 9:53 PM, Mark Brown wrote: > On Tue, Jul 13, 2021 at 12:06:38PM +0530, Mukunda,Vijendar wrote: >> On 7/8/21 5:11 PM, Mukunda,Vijendar wrote: >>> On 7/7/21 10:04 PM, Pierre-Louis Bossart wrote: > >>>>> +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? > >> suspend and resume callbacks implementation is same for runtime pm ops >> and system level pm ops in ACP PCI driver i.e in suspend callback acp >> de-init sequence will be invoked and in resume callback acp init >> sequence will be invoked. > >> As per our understanding if we safeguard code with CONFIG_PM_SLEEP >> macro, then runtime pm ops won't work. > > That's not what Pierre is suggesting though? > >> Do we need to duplicate the same code as mentioned below? > >> static const struct dev_pm_ops acp5x_pm = { >> SET_RUNTIME_PM_OPS(snd_acp5x_runtime_suspend, >> snd_acp5x_runtime_resume, NULL) >> SET_SYSTEM_SLEEP_PM_OPS(snd_acp5x_suspend, snd_acp5x_resume) >> }; > > Using the SET_ macros doesn't require that you duplicate the functions, > it literally just means changing the way the ops are assigned. > Will make the changes and post the new version.