Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec570b7f authored by Arun kumar's avatar Arun kumar Committed by Gerrit - the friendly Code Review server
Browse files

msm: mdss: use platform-enable-gpio on msm8909w BG



Use platform-enable-gpio to control buffer connected
on panel reset gpio.
This helps in avoiding panel reset during TWM entry.

Change-Id: I6a0706c593202ab62acf332690d3255acbfd49f8
Signed-off-by: default avatarArun kumar <akanak@codeaurora.org>
parent 162db220
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -1073,12 +1073,26 @@ static int mdp3_ctrl_off(struct msm_fb_data_type *mfd)
	}

	if (panel->event_handler) {
		if (mdp3_is_twm_en())
			pr_info("TWM Enabled skip MDSS_EVENT_PANEL_OFF\n");
		else
		if (mdp3_is_twm_en()) {
			pr_info("TWM active skip panel off, disable disp_en\n");
			if (gpio_is_valid(panel->panel_en_gpio)) {
				rc = gpio_direction_output(
					panel->panel_en_gpio, 1);
			if (rc) {
				pr_err("%s:set dir for gpio(%d) FAIL\n",
					__func__, panel->panel_en_gpio);
			} else {
				gpio_set_value((panel->panel_en_gpio), 0);
				usleep_range(100, 110);
				pr_debug("%s:set disp_en_gpio_%d Low\n",
					__func__, panel->panel_en_gpio);
				}
			}
		} else {
			rc = panel->event_handler(panel, MDSS_EVENT_PANEL_OFF,
				(void *) (long int)mfd->panel_power_state);
		}
	}
	if (rc)
		pr_err("EVENT_PANEL_OFF error (%d)\n", rc);

+1 −0
Original line number Diff line number Diff line
@@ -4070,6 +4070,7 @@ static int mdss_dsi_parse_gpio_params(struct platform_device *ctrl_pdev,
		if (!gpio_is_valid(ctrl_pdata->disp_en_gpio))
			pr_debug("%s:%d, Disp_en gpio not specified\n",
					__func__, __LINE__);
		pdata->panel_en_gpio = ctrl_pdata->disp_en_gpio;
	}

	ctrl_pdata->disp_te_gpio = of_get_named_gpio(ctrl_pdev->dev.of_node,
+3 −0
Original line number Diff line number Diff line
@@ -427,6 +427,8 @@ int mdss_dsi_panel_reset(struct mdss_panel_data *pdata, int enable)
						__func__);
					goto exit;
				}
				gpio_set_value((ctrl_pdata->disp_en_gpio), 1);
				usleep_range(100, 110);
			}

			if (pdata->panel_info.rst_seq_len) {
@@ -497,6 +499,7 @@ int mdss_dsi_panel_reset(struct mdss_panel_data *pdata, int enable)
		}
		if (gpio_is_valid(ctrl_pdata->disp_en_gpio)) {
			gpio_set_value((ctrl_pdata->disp_en_gpio), 0);
			usleep_range(100, 110);
			gpio_free(ctrl_pdata->disp_en_gpio);
		}
		gpio_set_value((ctrl_pdata->rst_gpio), 0);
+1 −0
Original line number Diff line number Diff line
@@ -821,6 +821,7 @@ struct mdss_panel_data {
	struct mdss_panel_data *next;

	int panel_te_gpio;
	int panel_en_gpio;
	struct completion te_done;
};