>>>> +static const struct dev_pm_ops tas2563_hda_pm_ops = { >>>> + SYSTEM_SLEEP_PM_OPS(tas2563_system_suspend, tas2563_system_resume) >>> >>> where's the pm_runtime stuff? >>> >> >> The amp stores its state in software shutdown mode. >> The tas2563_hda_playback_hook wakes/shutdowns the amp, not the >> pm_runtime. > > My point was that you have all these pm_runtime_ calls in the code, but > nothing that provides pm_runtime suspend-resume functions so not sure > what exactly the result is? if the inspiration was the tas2781, then see below it does have a RUNTIME_PM_OPS line as well as runtime_suspend/resume routines. static const struct dev_pm_ops tas2781_hda_pm_ops = { RUNTIME_PM_OPS(tas2781_runtime_suspend, tas2781_runtime_resume, NULL) SYSTEM_SLEEP_PM_OPS(tas2781_system_suspend, tas2781_system_resume) };