#include <drm/drm_panel.h>
 #include <drm/drm_print.h>
 
-#include <linux/backlight.h>
 #include <linux/gpio/consumer.h>
 #include <linux/delay.h>
 #include <linux/module.h>
        struct drm_panel        panel;
        struct mipi_dsi_device  *dsi;
 
-       struct backlight_device *backlight;
        struct regulator        *dvdd;
        struct regulator        *avdd;
        struct gpio_desc        *reset;
        msleep(200);
 
        mipi_dsi_dcs_set_display_on(ctx->dsi);
-       backlight_enable(ctx->backlight);
 
        return 0;
 }
 {
        struct feiyang *ctx = panel_to_feiyang(panel);
 
-       backlight_disable(ctx->backlight);
        return mipi_dsi_dcs_set_display_off(ctx->dsi);
 }
 
                return PTR_ERR(ctx->reset);
        }
 
-       ctx->backlight = devm_of_find_backlight(&dsi->dev);
-       if (IS_ERR(ctx->backlight))
-               return PTR_ERR(ctx->backlight);
+       ret = drm_panel_of_backlight(&ctx->panel);
+       if (ret)
+               return ret;
 
        ret = drm_panel_add(&ctx->panel);
        if (ret < 0)