]> Pileus Git - ~andy/linux/blobdiff - drivers/staging/omapdrm/omap_drv.c
Merge tag 'fbdev-for-3.8' of git://gitorious.org/linux-omap-dss2/linux
[~andy/linux] / drivers / staging / omapdrm / omap_drv.c
index d4823fd67768e2820ca10be48a8a1b898401215c..84943e5ba1d6563f49877ada93e022a1d67b5385 100644 (file)
@@ -565,6 +565,14 @@ static int dev_load(struct drm_device *dev, unsigned long flags)
 
        dev->dev_private = priv;
 
+       ret = omapdss_compat_init();
+       if (ret) {
+               dev_err(dev->dev, "coult not init omapdss\n");
+               dev->dev_private = NULL;
+               kfree(priv);
+               return ret;
+       }
+
        priv->wq = alloc_ordered_workqueue("omapdrm", 0);
 
        INIT_LIST_HEAD(&priv->obj_list);
@@ -576,6 +584,7 @@ static int dev_load(struct drm_device *dev, unsigned long flags)
                dev_err(dev->dev, "omap_modeset_init failed: ret=%d\n", ret);
                dev->dev_private = NULL;
                kfree(priv);
+               omapdss_compat_uninit();
                return ret;
        }
 
@@ -610,6 +619,8 @@ static int dev_unload(struct drm_device *dev)
        flush_workqueue(priv->wq);
        destroy_workqueue(priv->wq);
 
+       omapdss_compat_uninit();
+
        kfree(dev->dev_private);
        dev->dev_private = NULL;