Loading drivers/video/fbdev/msm/mdss_dsi.c +6 −0 Original line number Diff line number Diff line Loading @@ -2985,6 +2985,12 @@ static int mdss_dsi_cont_splash_config(struct mdss_panel_info *pinfo, mdss_dsi_panel_pwm_enable(ctrl_pdata); ctrl_pdata->ctrl_state |= (CTRL_STATE_PANEL_INIT | CTRL_STATE_MDP_ACTIVE | CTRL_STATE_DSI_ACTIVE); /* * MDP client removes this extra vote during splash reconfigure * for command mode panel from interface. DSI removes the vote * during suspend-resume for video mode panel. */ if (ctrl_pdata->panel_data.panel_info.type == MIPI_CMD_PANEL) clk_handle = ctrl_pdata->mdp_clk_handle; else Loading drivers/video/fbdev/msm/mdss_dsi.h +2 −1 Original line number Diff line number Diff line Loading @@ -557,7 +557,8 @@ struct mdss_dsi_ctrl_pdata { void *clk_mngr; void *dsi_clk_handle; void *mdp_clk_handle; int m_vote_cnt; int m_dsi_vote_cnt; int m_mdp_vote_cnt; /* debugfs structure */ struct mdss_dsi_debugfs_info *debugfs_info; Loading drivers/video/fbdev/msm/mdss_dsi_clk.c +24 −3 Original line number Diff line number Diff line Loading @@ -795,8 +795,29 @@ error: return rc; } bool is_dsi_clk_in_ecg_state(void *client) { struct mdss_dsi_clk_client_info *c = client; struct mdss_dsi_clk_mngr *mngr; bool is_ecg = false; if (!client) { pr_err("Invalid client params\n"); goto end; } mngr = c->mngr; mutex_lock(&mngr->clk_mutex); is_ecg = (c->core_clk_state == MDSS_DSI_CLK_EARLY_GATE); mutex_unlock(&mngr->clk_mutex); end: return is_ecg; } int mdss_dsi_clk_req_state(void *client, enum mdss_dsi_clk_type clk, enum mdss_dsi_clk_state state) enum mdss_dsi_clk_state state, u32 index) { int rc = 0; struct mdss_dsi_clk_client_info *c = client; Loading @@ -817,7 +838,7 @@ int mdss_dsi_clk_req_state(void *client, enum mdss_dsi_clk_type clk, c->name, mngr->name, clk, state, c->core_clk_state, c->link_clk_state); MDSS_XLOG(clk, state, c->core_clk_state, c->link_clk_state); MDSS_XLOG(index, clk, state, c->core_clk_state, c->link_clk_state); /* * Refcount handling rules: * 1. Increment refcount whenever ON is called Loading Loading @@ -883,7 +904,7 @@ int mdss_dsi_clk_req_state(void *client, enum mdss_dsi_clk_type clk, pr_debug("[%s]%s: change=%d, Core (ref=%d, state=%d), Link (ref=%d, state=%d)\n", c->name, mngr->name, changed, c->core_refcount, c->core_clk_state, c->link_refcount, c->link_clk_state); MDSS_XLOG(clk, state, c->core_clk_state, c->link_clk_state); MDSS_XLOG(index, clk, state, c->core_clk_state, c->link_clk_state); if (changed) { rc = dsi_recheck_clk_state(mngr); Loading drivers/video/fbdev/msm/mdss_dsi_clk.h +14 −1 Original line number Diff line number Diff line Loading @@ -197,6 +197,7 @@ int mdss_dsi_clk_deregister(void *client); * @client: client handle. * @clk: Type of clock requested (enum mdss_dsi_clk_type). * @state: clock state requested. * @index: controller index. * * This routine is used to request a new clock state for a specific clock. If * turning ON the clocks, this guarantees that clocks will be on before Loading @@ -206,7 +207,7 @@ int mdss_dsi_clk_deregister(void *client); * @return: error code. */ int mdss_dsi_clk_req_state(void *client, enum mdss_dsi_clk_type clk, enum mdss_dsi_clk_state state); enum mdss_dsi_clk_state state, u32 index); /** * mdss_dsi_clk_set_link_rate() - set clock rate for link clocks Loading Loading @@ -238,4 +239,16 @@ int mdss_dsi_clk_set_link_rate(void *client, enum mdss_dsi_link_clk_type clk, * @return:error code. */ int mdss_dsi_clk_force_toggle(void *client, u32 clk); /** * is_dsi_clk_in_ecg_state() - Checks the current state of clocks * @client: client handle. * * This routine returns checks the clocks status for client and return * success code based on it. * * @return:true: if clocks are in ECG state * false: for all other cases */ bool is_dsi_clk_in_ecg_state(void *client); #endif /* _MDSS_DSI_CLK_H_ */ drivers/video/fbdev/msm/mdss_dsi_host.c +0 −6 Original line number Diff line number Diff line Loading @@ -2811,12 +2811,6 @@ static int dsi_event_thread(void *data) pr_debug("%s: Handling underflow event\n", __func__); __dsi_fifo_error_handler(ctrl, true); } else { pr_err("%s: ctrl recovery not defined\n", __func__); MDSS_XLOG_TOUT_HANDLER("mdp", "dsi0_ctrl", "dsi0_phy", "dsi1_ctrl", "dsi1_phy", "vbif", "vbif_nrt", "dbg_bus", "vbif_dbg_bus", "panic"); } mutex_unlock(&ctrl->mutex); } Loading Loading
drivers/video/fbdev/msm/mdss_dsi.c +6 −0 Original line number Diff line number Diff line Loading @@ -2985,6 +2985,12 @@ static int mdss_dsi_cont_splash_config(struct mdss_panel_info *pinfo, mdss_dsi_panel_pwm_enable(ctrl_pdata); ctrl_pdata->ctrl_state |= (CTRL_STATE_PANEL_INIT | CTRL_STATE_MDP_ACTIVE | CTRL_STATE_DSI_ACTIVE); /* * MDP client removes this extra vote during splash reconfigure * for command mode panel from interface. DSI removes the vote * during suspend-resume for video mode panel. */ if (ctrl_pdata->panel_data.panel_info.type == MIPI_CMD_PANEL) clk_handle = ctrl_pdata->mdp_clk_handle; else Loading
drivers/video/fbdev/msm/mdss_dsi.h +2 −1 Original line number Diff line number Diff line Loading @@ -557,7 +557,8 @@ struct mdss_dsi_ctrl_pdata { void *clk_mngr; void *dsi_clk_handle; void *mdp_clk_handle; int m_vote_cnt; int m_dsi_vote_cnt; int m_mdp_vote_cnt; /* debugfs structure */ struct mdss_dsi_debugfs_info *debugfs_info; Loading
drivers/video/fbdev/msm/mdss_dsi_clk.c +24 −3 Original line number Diff line number Diff line Loading @@ -795,8 +795,29 @@ error: return rc; } bool is_dsi_clk_in_ecg_state(void *client) { struct mdss_dsi_clk_client_info *c = client; struct mdss_dsi_clk_mngr *mngr; bool is_ecg = false; if (!client) { pr_err("Invalid client params\n"); goto end; } mngr = c->mngr; mutex_lock(&mngr->clk_mutex); is_ecg = (c->core_clk_state == MDSS_DSI_CLK_EARLY_GATE); mutex_unlock(&mngr->clk_mutex); end: return is_ecg; } int mdss_dsi_clk_req_state(void *client, enum mdss_dsi_clk_type clk, enum mdss_dsi_clk_state state) enum mdss_dsi_clk_state state, u32 index) { int rc = 0; struct mdss_dsi_clk_client_info *c = client; Loading @@ -817,7 +838,7 @@ int mdss_dsi_clk_req_state(void *client, enum mdss_dsi_clk_type clk, c->name, mngr->name, clk, state, c->core_clk_state, c->link_clk_state); MDSS_XLOG(clk, state, c->core_clk_state, c->link_clk_state); MDSS_XLOG(index, clk, state, c->core_clk_state, c->link_clk_state); /* * Refcount handling rules: * 1. Increment refcount whenever ON is called Loading Loading @@ -883,7 +904,7 @@ int mdss_dsi_clk_req_state(void *client, enum mdss_dsi_clk_type clk, pr_debug("[%s]%s: change=%d, Core (ref=%d, state=%d), Link (ref=%d, state=%d)\n", c->name, mngr->name, changed, c->core_refcount, c->core_clk_state, c->link_refcount, c->link_clk_state); MDSS_XLOG(clk, state, c->core_clk_state, c->link_clk_state); MDSS_XLOG(index, clk, state, c->core_clk_state, c->link_clk_state); if (changed) { rc = dsi_recheck_clk_state(mngr); Loading
drivers/video/fbdev/msm/mdss_dsi_clk.h +14 −1 Original line number Diff line number Diff line Loading @@ -197,6 +197,7 @@ int mdss_dsi_clk_deregister(void *client); * @client: client handle. * @clk: Type of clock requested (enum mdss_dsi_clk_type). * @state: clock state requested. * @index: controller index. * * This routine is used to request a new clock state for a specific clock. If * turning ON the clocks, this guarantees that clocks will be on before Loading @@ -206,7 +207,7 @@ int mdss_dsi_clk_deregister(void *client); * @return: error code. */ int mdss_dsi_clk_req_state(void *client, enum mdss_dsi_clk_type clk, enum mdss_dsi_clk_state state); enum mdss_dsi_clk_state state, u32 index); /** * mdss_dsi_clk_set_link_rate() - set clock rate for link clocks Loading Loading @@ -238,4 +239,16 @@ int mdss_dsi_clk_set_link_rate(void *client, enum mdss_dsi_link_clk_type clk, * @return:error code. */ int mdss_dsi_clk_force_toggle(void *client, u32 clk); /** * is_dsi_clk_in_ecg_state() - Checks the current state of clocks * @client: client handle. * * This routine returns checks the clocks status for client and return * success code based on it. * * @return:true: if clocks are in ECG state * false: for all other cases */ bool is_dsi_clk_in_ecg_state(void *client); #endif /* _MDSS_DSI_CLK_H_ */
drivers/video/fbdev/msm/mdss_dsi_host.c +0 −6 Original line number Diff line number Diff line Loading @@ -2811,12 +2811,6 @@ static int dsi_event_thread(void *data) pr_debug("%s: Handling underflow event\n", __func__); __dsi_fifo_error_handler(ctrl, true); } else { pr_err("%s: ctrl recovery not defined\n", __func__); MDSS_XLOG_TOUT_HANDLER("mdp", "dsi0_ctrl", "dsi0_phy", "dsi1_ctrl", "dsi1_phy", "vbif", "vbif_nrt", "dbg_bus", "vbif_dbg_bus", "panic"); } mutex_unlock(&ctrl->mutex); } Loading