From: Li Zhuangzhi Date: Thu, 17 May 2012 07:23:06 +0000 (+0800) Subject: GFX-DISPLAY: Fix screen messy display or flash issue when pressing pwr button to... X-Git-Tag: 2.1b_release~714 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a9b42d8e5c2a39d4a1e3a013fb02a87e4b5bd093;p=kernel%2Fkernel-mfld-blackbay.git GFX-DISPLAY: Fix screen messy display or flash issue when pressing pwr button to resume system BZ: 36939 Issue: Board screen display flash while pressing power key to resume system on Lexington DUT. Solution: Case1: When panel and interface are initializing, there maybe some noise showed on display, We'd better turn on the backlight after the initialization operation, this can avoid some noise issue. And it's not good turn on backlight with full brightness at the beginning, it will cause a flash when screen on, the brightness level should be controlled by lastbrightnesslevel parameter after initialization. Case2: __dpi_panel_power_on() will reset the panel and then enable DSI PLL, config the DSI controller, then exit ULPS state, set low power output hold, then call p_funcs->drv_ic_init(), at this moment, the MIPI is in low power mode, so change the hs to lp in init to improve the ic init stability. Change-Id: If2b5d748c00a60680536435acb0a1908d163466b Signed-off-by: Li Zhuangzhi Signed-off-by: Tong, Bo Reviewed-on: http://android.intel.com:8080/49302 Reviewed-by: Ai, Ke Reviewed-by: Xu, Randy Tested-by: Xu, Randy Reviewed-by: buildbot Tested-by: buildbot --- diff --git a/drivers/staging/mrst/drv/gi_sony_vid.c b/drivers/staging/mrst/drv/gi_sony_vid.c index 210df82..caa9297 100644 --- a/drivers/staging/mrst/drv/gi_sony_vid.c +++ b/drivers/staging/mrst/drv/gi_sony_vid.c @@ -112,103 +112,99 @@ static int mdfld_gi_l5f3_dpi_ic_init(struct mdfld_dsi_config *dsi_config, PSB_DEBUG_ENTRY("\n"); sender->status = MDFLD_DSI_PKG_SENDER_FREE; - mdfld_dsi_send_mcs_long_hs(sender, gi_l5f3_set_column_add, 8, 0); + mdfld_dsi_send_mcs_long_lp(sender, gi_l5f3_set_column_add, 8, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_mcs_long_hs(sender, gi_l5f3_set_row_add, 8, 0); + mdfld_dsi_send_mcs_long_lp(sender, gi_l5f3_set_row_add, 8, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_mcs_long_hs(sender, gi_l5f3_set_address_mode, 4, 0); + mdfld_dsi_send_mcs_long_lp(sender, gi_l5f3_set_address_mode, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_mcs_long_hs(sender, gi_l5f3_set_pixel_format, 4, 0); + mdfld_dsi_send_mcs_long_lp(sender, gi_l5f3_set_pixel_format, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_mcs_long_hs(sender, gi_l5f3_set_te_scanline, 4, 0); + mdfld_dsi_send_mcs_long_lp(sender, gi_l5f3_set_te_scanline, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_mcs_long_hs(sender, gi_l5f3_set_tear_on, 4, 0); + mdfld_dsi_send_mcs_long_lp(sender, gi_l5f3_set_tear_on, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_passwd1_on, 4, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_passwd1_on, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_set_disctl, 20, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_set_disctl, 20, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_set_pwrctl, 16, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_set_pwrctl, 16, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_set_vcmctl, 16, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_set_vcmctl, 16, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_set_srcctl, 12, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_set_srcctl, 12, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_set_ifctl, 8, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_set_ifctl, 8, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_set_panelctl, 4, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_set_panelctl, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_set_gammasel, 4, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_set_gammasel, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_set_pgammactl, 20, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_set_pgammactl, 20, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_set_ngammactl, 20, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_set_ngammactl, 20, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_set_miectl1, 4, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_set_miectl1, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_set_bcmode, 4, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_set_bcmode, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_set_wrmiectl2, 4, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_set_wrmiectl2, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_set_wrblctl, 4, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_set_wrblctl, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_gen_long_hs(sender, gi_l5f3_passwd1_off, 4, 0); + mdfld_dsi_send_gen_long_lp(sender, gi_l5f3_passwd1_off, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_mcs_long_hs(sender, gi_l5f3_set_full_brightness, 4, 0); + mdfld_dsi_send_mcs_long_lp(sender, gi_l5f3_turn_on_backlight, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_mcs_long_hs(sender, gi_l5f3_turn_on_backlight, 4, 0); + mdfld_dsi_send_mcs_long_lp(sender, gi_l5f3_disable_cabc, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO; - mdfld_dsi_send_mcs_long_hs(sender, gi_l5f3_disable_cabc, 4, 0); - if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) - return -EIO; - - mdfld_dsi_send_mcs_long_hs(sender, gi_l5f3_exit_sleep_mode, 4, 0); + mdfld_dsi_send_mcs_long_lp(sender, gi_l5f3_exit_sleep_mode, 4, 0); if (sender->status == MDFLD_DSI_CONTROL_ABNORMAL) return -EIO;