struct snd_pcm_substream *substream, int cmd);
 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);
 
 struct snd_soc_dai_ops {
        /*
 
                if (rtd->dai_link->ignore_suspend)
                        continue;
 
-               if (cpu_dai->driver->suspend && !cpu_dai->driver->bus_control)
-                       cpu_dai->driver->suspend(cpu_dai);
+               if (!cpu_dai->driver->bus_control)
+                       snd_soc_dai_suspend(cpu_dai);
        }
 
        /* close any waiting streams */
                if (rtd->dai_link->ignore_suspend)
                        continue;
 
-               if (cpu_dai->driver->suspend && cpu_dai->driver->bus_control)
-                       cpu_dai->driver->suspend(cpu_dai);
+               if (cpu_dai->driver->bus_control)
+                       snd_soc_dai_suspend(cpu_dai);
 
                /* deactivate pins to sleep state */
                pinctrl_pm_select_sleep_state(cpu_dai->dev);