return 0;
 }
 
-static const struct omap_dss_device_ops dsi_ops = {
-       .dsi = {
-               .update = dsi_update_all,
-               .is_video_mode = dsi_is_video_mode,
-       },
+static const struct omapdss_dsi_ops dsi_ops = {
+       .update = dsi_update_all,
+       .is_video_mode = dsi_is_video_mode,
 };
 
 static irqreturn_t omap_dsi_te_irq_handler(int irq, void *dev_id)
        out->type = OMAP_DISPLAY_TYPE_DSI;
        out->name = dsi->module_id == 0 ? "dsi.0" : "dsi.1";
        out->dispc_channel = dsi_get_channel(dsi);
-       out->ops = &dsi_ops;
+       out->dsi_ops = &dsi_ops;
        out->owner = THIS_MODULE;
        out->of_port = 0;
        out->bus_flags = DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE
 
        bool (*is_video_mode)(struct omap_dss_device *dssdev);
 };
 
-struct omap_dss_device_ops {
-       const struct omapdss_dsi_ops dsi;
-};
-
 struct omap_dss_device {
        struct device *dev;
 
 
        const char *name;
 
-       const struct omap_dss_device_ops *ops;
+       const struct omapdss_dsi_ops *dsi_ops;
        u32 bus_flags;
 
        /* OMAP DSS output specific fields */
 
        struct drm_device *dev = omap_crtc->base.dev;
        int ret;
 
-       if (!dssdev) {
-               dev_err_once(dev->dev, "missing display dssdev!");
+       if (!dssdev || !dssdev->dsi_ops || !dssdev->dsi_ops->update)
                return;
-       }
-
-       if (dssdev->type != OMAP_DISPLAY_TYPE_DSI || !dssdev->ops->dsi.update) {
-               dev_err_once(dev->dev, "no DSI update callback found!");
-               return;
-       }
 
-       ret = dssdev->ops->dsi.update(dssdev);
+       ret = dssdev->dsi_ops->update(dssdev);
        if (ret < 0) {
                spin_lock_irq(&dev->event_lock);
                omap_crtc->pending = false;
        struct omap_crtc *omap_crtc = to_omap_crtc(crtc);
        struct omap_dss_device *dssdev = omap_crtc->pipe->output;
 
-       if (dssdev->type != OMAP_DISPLAY_TYPE_DSI ||
-           !dssdev->ops->dsi.is_video_mode)
+       if (!dssdev || !dssdev->dsi_ops || !dssdev->dsi_ops->is_video_mode)
                return false;
 
-       if (dssdev->ops->dsi.is_video_mode(dssdev))
+       if (dssdev->dsi_ops->is_video_mode(dssdev))
                return false;
 
        DBG("detected manually updated display!");