drm/bochs: switch to generic drm fbdev emulation

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20190111053752.4004-15-kraxel@redhat.com
This commit is contained in:
Gerd Hoffmann 2019-01-11 06:37:50 +01:00
parent 132a45340a
commit 7a0483ac4f

View File

@ -16,10 +16,6 @@ static int bochs_modeset = -1;
module_param_named(modeset, bochs_modeset, int, 0444); module_param_named(modeset, bochs_modeset, int, 0444);
MODULE_PARM_DESC(modeset, "enable/disable kernel modesetting"); 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 */ /* drm interface */
@ -27,7 +23,6 @@ static void bochs_unload(struct drm_device *dev)
{ {
struct bochs_device *bochs = dev->dev_private; struct bochs_device *bochs = dev->dev_private;
bochs_fbdev_fini(bochs);
bochs_kms_fini(bochs); bochs_kms_fini(bochs);
bochs_mm_fini(bochs); bochs_mm_fini(bochs);
bochs_hw_fini(dev); bochs_hw_fini(dev);
@ -58,9 +53,6 @@ static int bochs_load(struct drm_device *dev)
if (ret) if (ret)
goto err; goto err;
if (enable_fbdev)
bochs_fbdev_init(bochs);
return 0; return 0;
err: err:
@ -110,9 +102,7 @@ static int bochs_pm_suspend(struct device *dev)
{ {
struct pci_dev *pdev = to_pci_dev(dev); struct pci_dev *pdev = to_pci_dev(dev);
struct drm_device *drm_dev = pci_get_drvdata(pdev); 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); return drm_mode_config_helper_suspend(drm_dev);
} }
@ -120,9 +110,7 @@ static int bochs_pm_resume(struct device *dev)
{ {
struct pci_dev *pdev = to_pci_dev(dev); struct pci_dev *pdev = to_pci_dev(dev);
struct drm_device *drm_dev = pci_get_drvdata(pdev); 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); return drm_mode_config_helper_resume(drm_dev);
} }
#endif #endif
@ -167,6 +155,7 @@ static int bochs_pci_probe(struct pci_dev *pdev,
if (ret) if (ret)
goto err_unload; goto err_unload;
drm_fbdev_generic_setup(dev, 32);
return ret; return ret;
err_unload: err_unload: