snd_pcm_sframes_t snd_soc_dai_delay(struct snd_soc_dai *dai,
                                    struct snd_pcm_substream *substream);
 void snd_soc_dai_suspend(struct snd_soc_dai *dai);
+void snd_soc_dai_resume(struct snd_soc_dai *dai);
 
 struct snd_soc_dai_ops {
        /*
 
                if (rtd->dai_link->ignore_suspend)
                        continue;
 
-               if (cpu_dai->driver->resume && cpu_dai->driver->bus_control)
-                       cpu_dai->driver->resume(cpu_dai);
+               if (cpu_dai->driver->bus_control)
+                       snd_soc_dai_resume(cpu_dai);
        }
 
        for_each_card_components(card, component) {
                if (rtd->dai_link->ignore_suspend)
                        continue;
 
-               if (cpu_dai->driver->resume && !cpu_dai->driver->bus_control)
-                       cpu_dai->driver->resume(cpu_dai);
+               if (!cpu_dai->driver->bus_control)
+                       snd_soc_dai_resume(cpu_dai);
        }
 
        if (card->resume_post)
 
        if (dai->driver->suspend)
                dai->driver->suspend(dai);
 }
+
+void snd_soc_dai_resume(struct snd_soc_dai *dai)
+{
+       if (dai->driver->resume)
+               dai->driver->resume(dai);
+}