From 4c2035208345be43daeb92bd381c11acfc99802d Mon Sep 17 00:00:00 2001 From: Zhao Xuewen <zhaoxuewen@huawei.com> Date: Thu, 22 Oct 2015 22:23:00 +0800 Subject: [PATCH] msm: mdss: fix ambient mode screen freeze issue When enter ambient mode,mipi will change from normal to stop. panel will switch to video mode due to the floating signal sometimes,then screen will freeze. Enable ULPS,when enter ambient mode,mipi will change to ULPS and then to stop,this will indicate the panel to enter idle mode safely. When enable ULPS,the screen image will shift due to mipi footswitch off.Keep MIPI footswitch on to avoid this issue. BUG:25089287 Change-Id: Iee25ebabd2eee22d0c7edd686ccaada24e3633ec Signed-off-by: l00212897 <gang.li@huawei.com> --- .../dsi-panel-auo-rm69080-hvga-video.dtsi | 1 + .../dsi-panel-edo-rm67160-hvga-video.dtsi | 1 + drivers/video/msm/mdss/msm_mdss_io_8974.c | 8 ++++++++ 3 files changed, 10 insertions(+) diff --git a/arch/arm/boot/dts/apq8026-sturgeon/dsi-panel-auo-rm69080-hvga-video.dtsi b/arch/arm/boot/dts/apq8026-sturgeon/dsi-panel-auo-rm69080-hvga-video.dtsi index aec075d7c6d4..e90cbbfd801f 100644 --- a/arch/arm/boot/dts/apq8026-sturgeon/dsi-panel-auo-rm69080-hvga-video.dtsi +++ b/arch/arm/boot/dts/apq8026-sturgeon/dsi-panel-auo-rm69080-hvga-video.dtsi @@ -42,6 +42,7 @@ qcom,mdss-dsi-underflow-color = <0xff>; qcom,mdss-dsi-border-color = <0>; qcom,mdss-dsi-panel-orientation = "vflip"; + qcom,ulps-enabled; qcom,mdss-dsi-on-command = [15 01 00 00 01 00 02 00 00 15 01 00 00 00 00 02 FE 07 15 01 00 00 00 00 02 07 4F diff --git a/arch/arm/boot/dts/apq8026-sturgeon/dsi-panel-edo-rm67160-hvga-video.dtsi b/arch/arm/boot/dts/apq8026-sturgeon/dsi-panel-edo-rm67160-hvga-video.dtsi index 28fba640732c..be190efe9348 100644 --- a/arch/arm/boot/dts/apq8026-sturgeon/dsi-panel-edo-rm67160-hvga-video.dtsi +++ b/arch/arm/boot/dts/apq8026-sturgeon/dsi-panel-edo-rm67160-hvga-video.dtsi @@ -42,6 +42,7 @@ qcom,mdss-dsi-underflow-color = <0xff>; qcom,mdss-dsi-border-color = <0>; qcom,mdss-dsi-panel-orientation = "vflip"; + qcom,ulps-enabled; qcom,mdss-dsi-on-command = [15 01 00 00 01 00 02 00 00 15 01 00 00 00 00 02 FE 04 15 01 00 00 00 00 02 00 DC diff --git a/drivers/video/msm/mdss/msm_mdss_io_8974.c b/drivers/video/msm/mdss/msm_mdss_io_8974.c index d936cf4e9688..825ed7bf2543 100644 --- a/drivers/video/msm/mdss/msm_mdss_io_8974.c +++ b/drivers/video/msm/mdss/msm_mdss_io_8974.c @@ -1147,6 +1147,11 @@ static int mdss_dsi_core_power_ctrl(struct mdss_dsi_ctrl_pdata *ctrl, pr_debug("%s: leaving mdss gdsc on\n", __func__); } else { pr_debug("%s: Disable MDP FS\n", __func__); + /* + * temp workaround to keep MDP FS enable to avoid image + * shift after exit idle mode + */ +#if 0 rc = msm_dss_enable_vreg( ctrl->power_data[DSI_CORE_PM].vreg_config, ctrl->power_data[DSI_CORE_PM].num_vreg, 0); @@ -1158,6 +1163,9 @@ static int mdss_dsi_core_power_ctrl(struct mdss_dsi_ctrl_pdata *ctrl, } else { ctrl->core_power = false; } +#else + ctrl->core_power = false; +#endif } /* -- GitLab