Loading drivers/video/msm/mdss/mdss_dsi.c +13 −4 Original line number Diff line number Diff line Loading @@ -1270,12 +1270,21 @@ int mdss_dsi_on(struct mdss_panel_data *pdata) } /* * Enable DSI clocks. * This is also enable the DSI core power block and reset/setup * DSI phy * Enable DSI core clocks prior to resetting and initializing DSI * Phy. Phy and ctrl setup need to be done before enabling the link * clocks. */ mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_ON); MDSS_DSI_CORE_CLK, MDSS_DSI_CLK_ON); if (!pdata->panel_info.ulps_suspend_enabled) { mdss_dsi_phy_sw_reset(ctrl_pdata); mdss_dsi_phy_init(ctrl_pdata); mdss_dsi_ctrl_setup(ctrl_pdata); } /* DSI link clocks need to be on prior to ctrl sw reset */ mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_LINK_CLK, MDSS_DSI_CLK_ON); mdss_dsi_sw_reset(ctrl_pdata, true); mdss_dsi_read_hw_revision(ctrl_pdata); Loading drivers/video/msm/mdss/mdss_dsi.h +2 −0 Original line number Diff line number Diff line Loading @@ -582,6 +582,8 @@ void mdss_dsi_video_test_pattern(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_panel_pwm_cfg(struct mdss_dsi_ctrl_pdata *ctrl); bool mdss_dsi_panel_pwm_enable(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_ctrl_phy_restore(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_phy_sw_reset(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_phy_init(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_ctrl_init(struct device *ctrl_dev, struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_cmd_mdp_busy(struct mdss_dsi_ctrl_pdata *ctrl); Loading drivers/video/msm/mdss/msm_mdss_io_8974.c +4 −14 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ static void mdss_dsi_ctrl_phy_reset(struct mdss_dsi_ctrl_pdata *ctrl) wmb(); /* maek sure reset cleared */ } static void mdss_dsi_phy_sw_reset(struct mdss_dsi_ctrl_pdata *ctrl) void mdss_dsi_phy_sw_reset(struct mdss_dsi_ctrl_pdata *ctrl) { struct mdss_dsi_ctrl_pdata *sctrl = NULL; struct dsi_shared_data *sdata; Loading Loading @@ -1497,20 +1497,10 @@ int mdss_dsi_post_clkon_cb(void *priv, mdss_dsi_read_hw_revision(ctrl); /* * Phy software reset should not be done for: * 1.) Idle screen power collapse use-case. Issue a phy software * reset only when unblanking the panel in this case. * 2.) When ULPS during suspend is enabled. * Phy and controller setup is needed if coming out of idle * power collapse with clamps enabled. */ if (pdata->panel_info.blank_state == MDSS_PANEL_BLANK_BLANK && !pdata->panel_info.ulps_suspend_enabled) mdss_dsi_phy_sw_reset(ctrl); /* * Phy and controller setup need not be done during bootup * when continuous splash screen is enabled. */ if (!pdata->panel_info.cont_splash_enabled) { if (ctrl->mmss_clamp) { mdss_dsi_phy_init(ctrl); mdss_dsi_ctrl_setup(ctrl); } Loading Loading
drivers/video/msm/mdss/mdss_dsi.c +13 −4 Original line number Diff line number Diff line Loading @@ -1270,12 +1270,21 @@ int mdss_dsi_on(struct mdss_panel_data *pdata) } /* * Enable DSI clocks. * This is also enable the DSI core power block and reset/setup * DSI phy * Enable DSI core clocks prior to resetting and initializing DSI * Phy. Phy and ctrl setup need to be done before enabling the link * clocks. */ mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_ON); MDSS_DSI_CORE_CLK, MDSS_DSI_CLK_ON); if (!pdata->panel_info.ulps_suspend_enabled) { mdss_dsi_phy_sw_reset(ctrl_pdata); mdss_dsi_phy_init(ctrl_pdata); mdss_dsi_ctrl_setup(ctrl_pdata); } /* DSI link clocks need to be on prior to ctrl sw reset */ mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_LINK_CLK, MDSS_DSI_CLK_ON); mdss_dsi_sw_reset(ctrl_pdata, true); mdss_dsi_read_hw_revision(ctrl_pdata); Loading
drivers/video/msm/mdss/mdss_dsi.h +2 −0 Original line number Diff line number Diff line Loading @@ -582,6 +582,8 @@ void mdss_dsi_video_test_pattern(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_panel_pwm_cfg(struct mdss_dsi_ctrl_pdata *ctrl); bool mdss_dsi_panel_pwm_enable(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_ctrl_phy_restore(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_phy_sw_reset(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_phy_init(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_ctrl_init(struct device *ctrl_dev, struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_cmd_mdp_busy(struct mdss_dsi_ctrl_pdata *ctrl); Loading
drivers/video/msm/mdss/msm_mdss_io_8974.c +4 −14 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ static void mdss_dsi_ctrl_phy_reset(struct mdss_dsi_ctrl_pdata *ctrl) wmb(); /* maek sure reset cleared */ } static void mdss_dsi_phy_sw_reset(struct mdss_dsi_ctrl_pdata *ctrl) void mdss_dsi_phy_sw_reset(struct mdss_dsi_ctrl_pdata *ctrl) { struct mdss_dsi_ctrl_pdata *sctrl = NULL; struct dsi_shared_data *sdata; Loading Loading @@ -1497,20 +1497,10 @@ int mdss_dsi_post_clkon_cb(void *priv, mdss_dsi_read_hw_revision(ctrl); /* * Phy software reset should not be done for: * 1.) Idle screen power collapse use-case. Issue a phy software * reset only when unblanking the panel in this case. * 2.) When ULPS during suspend is enabled. * Phy and controller setup is needed if coming out of idle * power collapse with clamps enabled. */ if (pdata->panel_info.blank_state == MDSS_PANEL_BLANK_BLANK && !pdata->panel_info.ulps_suspend_enabled) mdss_dsi_phy_sw_reset(ctrl); /* * Phy and controller setup need not be done during bootup * when continuous splash screen is enabled. */ if (!pdata->panel_info.cont_splash_enabled) { if (ctrl->mmss_clamp) { mdss_dsi_phy_init(ctrl); mdss_dsi_ctrl_setup(ctrl); } Loading