static int omap_hdmi_dai_startup(struct snd_pcm_substream *substream,
                                  struct snd_soc_dai *dai)
 {
+       struct hdmi_priv *priv = snd_soc_dai_get_drvdata(dai);
        int err;
        /*
         * Make sure that the period bytes are multiple of the DMA packet size.
         */
        err = snd_pcm_hw_constraint_step(substream->runtime, 0,
                                 SNDRV_PCM_HW_PARAM_PERIOD_BYTES, 128);
-       if (err < 0)
+       if (err < 0) {
+               dev_err(dai->dev, "could not apply constraint\n");
                return err;
+       }
 
+       if (!priv->dssdev->driver->audio_supported(priv->dssdev)) {
+               dev_err(dai->dev, "audio not supported\n");
+               return -ENODEV;
+       }
        return 0;
 }
 
 
 
 #define DRV_NAME "omap-hdmi-audio"
 
-static int omap4_hdmi_dai_hw_params(struct snd_pcm_substream *substream,
-               struct snd_pcm_hw_params *params)
-{
-       int i;
-       struct omap_overlay_manager *mgr = NULL;
-       struct device *dev = substream->pcm->card->dev;
-
-       /* Find DSS HDMI device */
-       for (i = 0; i < omap_dss_get_num_overlay_managers(); i++) {
-               mgr = omap_dss_get_overlay_manager(i);
-               if (mgr && mgr->device
-                       && mgr->device->type == OMAP_DISPLAY_TYPE_HDMI)
-                       break;
-       }
-
-       if (i == omap_dss_get_num_overlay_managers()) {
-               dev_err(dev, "HDMI display device not found!\n");
-               return -ENODEV;
-       }
-
-       /* Make sure HDMI is power-on to avoid L3 interconnect errors */
-       if (mgr->device->state != OMAP_DSS_DISPLAY_ACTIVE) {
-               dev_err(dev, "HDMI display is not active!\n");
-               return -EIO;
-       }
-
-       return 0;
-}
-
-static struct snd_soc_ops omap4_hdmi_dai_ops = {
-       .hw_params = omap4_hdmi_dai_hw_params,
-};
-
 static struct snd_soc_dai_link omap4_hdmi_dai = {
        .name = "HDMI",
        .stream_name = "HDMI",
        .platform_name = "omap-pcm-audio",
        .codec_name = "hdmi-audio-codec",
        .codec_dai_name = "omap-hdmi-hifi",
-       .ops = &omap4_hdmi_dai_ops,
 };
 
 static struct snd_soc_card snd_soc_omap4_hdmi = {