dev->pdev = pdev;
        pci_set_drvdata(pdev, dev);
 
-       ret = drm_dev_register(dev, ent->driver_data);
+       ret = ast_driver_load(dev, ent->driver_data);
        if (ret)
                goto err_drm_dev_put;
 
+       ret = drm_dev_register(dev, ent->driver_data);
+       if (ret)
+               goto err_ast_driver_unload;
+
        return 0;
 
+err_ast_driver_unload:
+       ast_driver_unload(dev);
 err_drm_dev_put:
        drm_dev_put(dev);
 err_pci_disable_device:
        pci_disable_device(pdev);
        return ret;
+
 }
 
 static void
        struct drm_device *dev = pci_get_drvdata(pdev);
 
        drm_dev_unregister(dev);
+       ast_driver_unload(dev);
        drm_dev_put(dev);
 }
 
                           DRIVER_GEM |
                           DRIVER_MODESET,
 
-       .load = ast_driver_load,
-       .unload = ast_driver_unload,
-
        .fops = &ast_fops,
        .name = DRIVER_NAME,
        .desc = DRIVER_DESC,