struct nt39016 *panel;
        int err;
 
-       panel = devm_kzalloc(dev, sizeof(*panel), GFP_KERNEL);
-       if (!panel)
-               return -ENOMEM;
+       panel = devm_drm_panel_alloc(dev, struct nt39016, drm_panel, &nt39016_funcs,
+                                    DRM_MODE_CONNECTOR_DPI);
+       if (IS_ERR(panel))
+               return PTR_ERR(panel);
 
        spi_set_drvdata(spi, panel);
 
                return PTR_ERR(panel->map);
        }
 
-       drm_panel_init(&panel->drm_panel, dev, &nt39016_funcs,
-                      DRM_MODE_CONNECTOR_DPI);
-
        err = drm_panel_of_backlight(&panel->drm_panel);
        if (err)
                return dev_err_probe(dev, err, "Failed to get backlight handle\n");