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, &reg_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, &reg_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, &reg_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, &reg_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);