u32 rotation = 0;
        int ret;
 
-       dbidev = kzalloc(sizeof(*dbidev), GFP_KERNEL);
-       if (!dbidev)
-               return -ENOMEM;
+       dbidev = devm_drm_dev_alloc(dev, &ili9486_driver,
+                                   struct mipi_dbi_dev, drm);
+       if (IS_ERR(dbidev))
+               return PTR_ERR(dbidev);
 
        dbi = &dbidev->dbi;
        drm = &dbidev->drm;
-       ret = devm_drm_dev_init(dev, drm, &ili9486_driver);
-       if (ret) {
-               kfree(dbidev);
-               return ret;
-       }
-       drmm_add_final_kfree(drm, dbidev);
 
        dbi->reset = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
        if (IS_ERR(dbi->reset)) {