Skip to content

Commit 73b508b

Browse files
singhomeleeasus-leslieyu
authored andcommitted
mipi-dsi: powertip: use backlight device to control pwm of mcu_ili9881c.
After applying this commit, suspend/resume process will disabling/enabling backlight. Change-Id: I25c2f9c074c0b8fc2d0708385413f58424e23b14
1 parent 61b7e6f commit 73b508b

File tree

3 files changed

+383
-302
lines changed

3 files changed

+383
-302
lines changed

drivers/gpu/drm/panel/panel-asus-ili9881c.c

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,7 @@ static const struct ili9881c_instr ili9881c_init_1[] = {//10-inch
469469
ILI9881C_COMMAND_INSTR(0xD3, 0x39),
470470
};
471471

472+
extern struct backlight_device * tinker_mcu_ili9881c_get_backlightdev(void);
472473
extern int tinker_mcu_ili9881c_set_bright(int bright);
473474
extern void tinker_mcu_ili9881c_screen_power_up(void);
474475

@@ -596,14 +597,25 @@ static int ili9881c_enable(struct drm_panel *panel)
596597
msleep(120);
597598

598599
//backlight_enable(ctx->backlight);
599-
#if 1
600+
601+
#if 0
600602
if (!powering_on) {
601603
tinker_mcu_ili9881c_set_bright(0x9f);
602604
msleep(10);
603605
powering_on = 1;
604606
}
605607

606608
tinker_mcu_ili9881c_set_bright(0x9f);
609+
#else
610+
ctx->backlight->props.power = FB_BLANK_UNBLANK;
611+
if (!powering_on) {
612+
ctx->backlight->props.brightness = 50;
613+
backlight_update_status(ctx->backlight);
614+
msleep(10);
615+
powering_on = 1;
616+
ctx->backlight->props.brightness = 255;
617+
}
618+
backlight_update_status(ctx->backlight);
607619
#endif
608620

609621
enable = 1;
@@ -613,10 +625,14 @@ static int ili9881c_enable(struct drm_panel *panel)
613625

614626
static int ili9881c_disable(struct drm_panel *panel)
615627
{
628+
struct ili9881c *ctx = panel_to_ili9881c(panel);
629+
616630
enable = 0;
617631
pr_info("%s\n", __func__);
618632
//backlight_disable(ctx->backlight);
619-
tinker_mcu_ili9881c_set_bright(0x00);
633+
//tinker_mcu_ili9881c_set_bright(0x00);
634+
ctx->backlight->props.power = FB_BLANK_POWERDOWN;
635+
backlight_update_status(ctx->backlight);
620636

621637
return 0;
622638
}
@@ -728,8 +744,14 @@ int ili9881c_dsi_probe(struct mipi_dsi_device *dsi)
728744
if (!ctx)
729745
return -ENOMEM;
730746
mipi_dsi_set_drvdata(dsi, ctx);
731-
ctx->dsi = dsi;
747+
ctx->backlight = tinker_mcu_ili9881c_get_backlightdev();
748+
if (!ctx->backlight) {
749+
printk("ili9881c_dsi_probe get backlight fail\n");
750+
return -ENODEV;
751+
}
752+
ctx->backlight->props.brightness = 255;
732753

754+
ctx->dsi = dsi;
733755
drm_panel_init(&ctx->panel);
734756
ctx->panel.dev = &dsi->dev;
735757
ctx->panel.funcs = &ili9881c_funcs;

0 commit comments

Comments
 (0)