u32 bus_flags;
        int err;
 
-       panel = devm_kzalloc(dev, sizeof(*panel), GFP_KERNEL);
-       if (!panel)
-               return -ENOMEM;
+       panel = devm_drm_panel_alloc(dev, struct panel_simple, base,
+                                    &panel_simple_funcs, desc->connector_type);
+       if (IS_ERR(panel))
+               return PTR_ERR(panel);
 
        panel->desc = desc;
 
        pm_runtime_set_autosuspend_delay(dev, 1000);
        pm_runtime_use_autosuspend(dev);
 
-       drm_panel_init(&panel->base, dev, &panel_simple_funcs, connector_type);
-
        err = drm_panel_of_backlight(&panel->base);
        if (err) {
                dev_err_probe(dev, err, "Could not find backlight\n");