diff --git a/drivers/video/msm/mdss/mdp3_ctrl.c b/drivers/video/msm/mdss/mdp3_ctrl.c index 55f6a84c09f626dd762fb10fbb821cf1e4569939..67f1c7b9e41fa9a5e600dcdbd161abf37468c472 100755 --- a/drivers/video/msm/mdss/mdp3_ctrl.c +++ b/drivers/video/msm/mdss/mdp3_ctrl.c @@ -47,7 +47,6 @@ static int mdp3_ctrl_get_pack_pattern(u32 imgType); int mdp3_wait_for_dma_done(struct mdp3_session_data *session); -struct msm_fb_data_type *g_mfd = NULL; u32 mdp_lut_inverse16[MDP_LUT_SIZE] = { 0, 65536, 32768, 21845, 16384, 13107, 10923, 9362, 8192, 7282, 6554, 5958, 5461, 5041, 4681, 4369, 4096, 3855, 3641, 3449, 3277, 3121, 2979, 2849, 2731, @@ -2752,7 +2751,6 @@ int mdp3_ctrl_init(struct msm_fb_data_type *mfd) u32 intf_type = MDP3_DMA_OUTPUT_SEL_DSI_VIDEO; int rc; int splash_mismatch = 0; - g_mfd = mfd; pr_info("mdp3_ctrl_init\n"); rc = mdp3_parse_dt_splash(mfd); if (rc) diff --git a/drivers/video/msm/mdss/mdss_fb.c b/drivers/video/msm/mdss/mdss_fb.c index 63a4f8ee54a4a2976962550c912a4f8ca833cde9..4ab2d5223aa6c68d84fc4f42f6cd0ec8786519bd 100755 --- a/drivers/video/msm/mdss/mdss_fb.c +++ b/drivers/video/msm/mdss/mdss_fb.c @@ -81,7 +81,7 @@ static struct fb_info *fbi_list[MAX_FBI_LIST]; static int fbi_list_index; -extern struct msm_fb_data_type *g_mfd; + static void *panel_lk_addr = NULL; static u32 mdss_fb_pseudo_palette[16] = { @@ -1013,7 +1013,7 @@ static ssize_t mdss_fb_get_image_mode(struct device *dev, struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)fbi->par; struct mdss_panel_data *pdata; struct mdss_panel_info *pinfo; - int ret; + int ret = 0; struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; char *rx_buf = NULL; @@ -1089,7 +1089,7 @@ static ssize_t mdss_fb_get_pixel_mode(struct device *dev, struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)fbi->par; struct mdss_panel_data *pdata; struct mdss_panel_info *pinfo; - int ret; + int ret = 0; struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; char *rx_buf = NULL; @@ -1165,7 +1165,7 @@ static ssize_t mdss_fb_get_signal_mode(struct device *dev, struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)fbi->par; struct mdss_panel_data *pdata; struct mdss_panel_info *pinfo; - int ret; + int ret = 0; struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; char *rx_buf = NULL; @@ -1203,7 +1203,7 @@ static ssize_t mdss_fb_get_bright_mode(struct device *dev, struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)fbi->par; struct mdss_panel_data *pdata; struct mdss_panel_info *pinfo; - int ret; + int ret = 0; struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; char *rx_buf = NULL; @@ -1279,7 +1279,7 @@ static ssize_t mdss_fb_get_bright_en_mode(struct device *dev, struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)fbi->par; struct mdss_panel_data *pdata; struct mdss_panel_info *pinfo; - int ret; + int ret = 0; struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; char *rx_buf = NULL; @@ -2275,7 +2275,7 @@ int mdss_fb_get_register_value(struct msm_fb_data_type* mfd, int reg, int *val) { struct mdss_panel_data* pdata; struct mdss_panel_info* pinfo; - int ret; + int ret = 0; struct mdss_dsi_ctrl_pdata* ctrl_pdata = NULL; char* rx_buf = NULL; @@ -2370,6 +2370,7 @@ static int mdss_fb_blank_unblank(struct msm_fb_data_type *mfd) { int ret = 0; int cur_power_state; + int reg_val = 0; if (!mfd) return -EINVAL; @@ -2450,6 +2451,16 @@ static int mdss_fb_blank_unblank(struct msm_fb_data_type *mfd) } error: + /*read 0x0d status reg to check whether the panel has been set to all pixel off, set 0x13 cmd to normal mode*/ + reg_val = -1; + mdss_fb_get_register_value(mfd, 0x0d, ®_val); + if (0x08 == reg_val) + { + pr_err("read 0x0d error:%d\n",reg_val); + mdss_set_short_cmd(mfd, 0x13, 0x00); + mdss_fb_get_register_value(mfd, 0x0d, ®_val); + pr_err("read 0x0d after set to normal mode:%d\n",reg_val); + } return ret; } @@ -4154,7 +4165,6 @@ static int __mdss_fb_display_thread(void *data) struct msm_fb_data_type *mfd = data; int ret; struct sched_param param; - int reg_val = 0; /* * this priority was found during empiric testing to have appropriate @@ -4176,16 +4186,6 @@ static int __mdss_fb_display_thread(void *data) break; MDSS_XLOG(mfd->index, XLOG_FUNC_ENTRY); - /*read 0x0d status reg to check whether the panel has been set to all pixel off, set 0x13 cmd to normal mode*/ - reg_val = -1; - mdss_fb_get_register_value(g_mfd, 0x0d, ®_val); - if (0x08 == reg_val) - { - pr_err("read 0x0d error:%d\n",reg_val); - mdss_set_short_cmd(g_mfd, 0x13, 0x00); - mdss_fb_get_register_value(g_mfd, 0x0d, ®_val); - pr_err("read 0x0d after set to normal mode:%d\n",reg_val); - } ret = __mdss_fb_perform_commit(mfd); MDSS_XLOG(mfd->index, XLOG_FUNC_EXIT);