module_param_named(modeset, bochs_modeset, int, 0444);
 MODULE_PARM_DESC(modeset, "enable/disable kernel modesetting");
 
-static bool enable_fbdev = true;
-module_param_named(fbdev, enable_fbdev, bool, 0444);
-MODULE_PARM_DESC(fbdev, "register fbdev device");
-
 /* ---------------------------------------------------------------------- */
 /* drm interface                                                          */
 
 {
        struct bochs_device *bochs = dev->dev_private;
 
-       bochs_fbdev_fini(bochs);
        bochs_kms_fini(bochs);
        bochs_mm_fini(bochs);
        bochs_hw_fini(dev);
        if (ret)
                goto err;
 
-       if (enable_fbdev)
-               bochs_fbdev_init(bochs);
-
        return 0;
 
 err:
 {
        struct pci_dev *pdev = to_pci_dev(dev);
        struct drm_device *drm_dev = pci_get_drvdata(pdev);
-       struct bochs_device *bochs = drm_dev->dev_private;
 
-       drm_fb_helper_set_suspend_unlocked(&bochs->fb.helper, 1);
        return drm_mode_config_helper_suspend(drm_dev);
 }
 
 {
        struct pci_dev *pdev = to_pci_dev(dev);
        struct drm_device *drm_dev = pci_get_drvdata(pdev);
-       struct bochs_device *bochs = drm_dev->dev_private;
 
-       drm_fb_helper_set_suspend_unlocked(&bochs->fb.helper, 0);
        return drm_mode_config_helper_resume(drm_dev);
 }
 #endif
        if (ret)
                goto err_unload;
 
+       drm_fbdev_generic_setup(dev, 32);
        return ret;
 
 err_unload: