|
@@ -34,12 +34,11 @@ static int kirin_drm_kms_cleanup(struct drm_device *dev)
|
|
|
{
|
|
|
struct kirin_drm_private *priv = dev->dev_private;
|
|
|
|
|
|
-#ifdef CONFIG_DRM_FBDEV_EMULATION
|
|
|
if (priv->fbdev) {
|
|
|
drm_fbdev_cma_fini(priv->fbdev);
|
|
|
priv->fbdev = NULL;
|
|
|
}
|
|
|
-#endif
|
|
|
+
|
|
|
drm_kms_helper_poll_fini(dev);
|
|
|
dc_ops->cleanup(to_platform_device(dev->dev));
|
|
|
drm_mode_config_cleanup(dev);
|
|
@@ -49,20 +48,16 @@ static int kirin_drm_kms_cleanup(struct drm_device *dev)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_DRM_FBDEV_EMULATION
|
|
|
static void kirin_fbdev_output_poll_changed(struct drm_device *dev)
|
|
|
{
|
|
|
struct kirin_drm_private *priv = dev->dev_private;
|
|
|
|
|
|
drm_fbdev_cma_hotplug_event(priv->fbdev);
|
|
|
}
|
|
|
-#endif
|
|
|
|
|
|
static const struct drm_mode_config_funcs kirin_drm_mode_config_funcs = {
|
|
|
.fb_create = drm_fb_cma_create,
|
|
|
-#ifdef CONFIG_DRM_FBDEV_EMULATION
|
|
|
.output_poll_changed = kirin_fbdev_output_poll_changed,
|
|
|
-#endif
|
|
|
.atomic_check = drm_atomic_helper_check,
|
|
|
.atomic_commit = drm_atomic_helper_commit,
|
|
|
};
|
|
@@ -123,12 +118,12 @@ static int kirin_drm_kms_init(struct drm_device *dev)
|
|
|
|
|
|
priv->fbdev = drm_fbdev_cma_init(dev, 32,
|
|
|
dev->mode_config.num_connector);
|
|
|
+
|
|
|
if (IS_ERR(priv->fbdev)) {
|
|
|
DRM_ERROR("failed to initialize fbdev.\n");
|
|
|
ret = PTR_ERR(priv->fbdev);
|
|
|
goto err_cleanup_poll;
|
|
|
}
|
|
|
-
|
|
|
return 0;
|
|
|
|
|
|
err_cleanup_poll:
|