diff options
-rw-r--r-- | sound/soc/soc-core.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index d5bf0158b36a..5f36274336ae 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1291,13 +1291,15 @@ int snd_soc_resume(struct device *dev) struct snd_soc_dai *cpu_dai = card->rtd[i].cpu_dai; ac97_control |= cpu_dai->driver->ac97_control; } - if (ac97_control) { - dev_dbg(dev, "Resuming AC97 immediately\n"); - soc_resume_deferred(&card->deferred_resume_work); - } else { - dev_dbg(dev, "Scheduling resume work\n"); - if (!schedule_work(&card->deferred_resume_work)) - dev_err(dev, "resume work item may be lost\n"); + if (card->num_rtd) { + if (ac97_control) { + dev_dbg(dev, "Resuming AC97 immediately\n"); + soc_resume_deferred(&card->deferred_resume_work); + } else { + dev_dbg(dev, "Scheduling resume work\n"); + if (!schedule_work(&card->deferred_resume_work)) + dev_err(dev, "resume work item may be lost\n"); + } } return 0; |