|
@@ -86,7 +86,6 @@ static int imx_drm_atomic_check(struct drm_device *dev,
|
|
|
|
|
|
static const struct drm_mode_config_funcs imx_drm_mode_config_funcs = {
|
|
|
.fb_create = drm_gem_fb_create,
|
|
|
- .output_poll_changed = drm_fb_helper_output_poll_changed,
|
|
|
.atomic_check = imx_drm_atomic_check,
|
|
|
.atomic_commit = drm_atomic_helper_commit,
|
|
|
};
|
|
@@ -165,7 +164,6 @@ static const struct drm_ioctl_desc imx_drm_ioctls[] = {
|
|
|
static struct drm_driver imx_drm_driver = {
|
|
|
.driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME |
|
|
|
DRIVER_ATOMIC,
|
|
|
- .lastclose = drm_fb_helper_lastclose,
|
|
|
.gem_free_object_unlocked = drm_gem_cma_free_object,
|
|
|
.gem_vm_ops = &drm_gem_cma_vm_ops,
|
|
|
.dumb_create = drm_gem_cma_dumb_create,
|
|
@@ -263,30 +261,23 @@ static int imx_drm_bind(struct device *dev)
|
|
|
* The fb helper takes copies of key hardware information, so the
|
|
|
* crtcs/connectors/encoders must not change after this point.
|
|
|
*/
|
|
|
-#if IS_ENABLED(CONFIG_DRM_FBDEV_EMULATION)
|
|
|
if (legacyfb_depth != 16 && legacyfb_depth != 32) {
|
|
|
dev_warn(dev, "Invalid legacyfb_depth. Defaulting to 16bpp\n");
|
|
|
legacyfb_depth = 16;
|
|
|
}
|
|
|
- ret = drm_fb_cma_fbdev_init(drm, legacyfb_depth, MAX_CRTC);
|
|
|
- if (ret)
|
|
|
- goto err_unbind;
|
|
|
-#endif
|
|
|
|
|
|
drm_kms_helper_poll_init(drm);
|
|
|
|
|
|
ret = drm_dev_register(drm, 0);
|
|
|
if (ret)
|
|
|
- goto err_fbhelper;
|
|
|
+ goto err_poll_fini;
|
|
|
+
|
|
|
+ drm_fbdev_generic_setup(drm, legacyfb_depth);
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
-err_fbhelper:
|
|
|
+err_poll_fini:
|
|
|
drm_kms_helper_poll_fini(drm);
|
|
|
-#if IS_ENABLED(CONFIG_DRM_FBDEV_EMULATION)
|
|
|
- drm_fb_cma_fbdev_fini(drm);
|
|
|
-err_unbind:
|
|
|
-#endif
|
|
|
component_unbind_all(drm->dev, drm);
|
|
|
err_kms:
|
|
|
drm_mode_config_cleanup(drm);
|
|
@@ -303,8 +294,6 @@ static void imx_drm_unbind(struct device *dev)
|
|
|
|
|
|
drm_kms_helper_poll_fini(drm);
|
|
|
|
|
|
- drm_fb_cma_fbdev_fini(drm);
|
|
|
-
|
|
|
drm_mode_config_cleanup(drm);
|
|
|
|
|
|
component_unbind_all(drm->dev, drm);
|