Loading drivers/video/msm/mdss/mdss_dsi.c +34 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <linux/clk.h> #include <linux/uaccess.h> #include <linux/msm-bus.h> #include <linux/pm_qos.h> #include "mdss.h" #include "mdss_panel.h" Loading @@ -38,6 +39,30 @@ /* Master structure to hold all the information about the DSI/panel */ static struct mdss_dsi_data *mdss_dsi_res; #define DSI_DISABLE_PC_LATENCY 100 #define DSI_ENABLE_PC_LATENCY PM_QOS_DEFAULT_VALUE static struct pm_qos_request mdss_dsi_pm_qos_request; static void mdss_dsi_pm_qos_add_request(void) { pr_debug("%s: add request", __func__); pm_qos_add_request(&mdss_dsi_pm_qos_request, PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE); } static void mdss_dsi_pm_qos_remove_request(void) { pr_debug("%s: remove request", __func__); pm_qos_remove_request(&mdss_dsi_pm_qos_request); } static void mdss_dsi_pm_qos_update_request(int val) { pr_debug("%s: update request %d", __func__, val); pm_qos_update_request(&mdss_dsi_pm_qos_request, val); } static int mdss_dsi_pinctrl_set_state(struct mdss_dsi_ctrl_pdata *ctrl_pdata, bool active); Loading Loading @@ -1412,6 +1437,8 @@ static int mdss_dsi_unblank(struct mdss_panel_data *pdata) __func__, ctrl_pdata, ctrl_pdata->ndx, pdata->panel_info.panel_power_state, ctrl_pdata->ctrl_state); mdss_dsi_pm_qos_update_request(DSI_DISABLE_PC_LATENCY); if (mdss_dsi_is_ctrl_clk_master(ctrl_pdata)) sctrl = mdss_dsi_get_ctrl_clk_slave(); Loading Loading @@ -1453,6 +1480,9 @@ error: if (sctrl) mdss_dsi_clk_ctrl(sctrl, sctrl->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_OFF); mdss_dsi_pm_qos_update_request(DSI_ENABLE_PC_LATENCY); pr_debug("%s-:\n", __func__); return ret; Loading Loading @@ -2884,6 +2914,8 @@ static int mdss_dsi_ctrl_probe(struct platform_device *pdev) else ctrl_pdata->shared_data->dsi1_active = true; mdss_dsi_pm_qos_add_request(); return 0; error_shadow_clk_deinit: Loading Loading @@ -3340,6 +3372,8 @@ static int mdss_dsi_ctrl_remove(struct platform_device *pdev) return -ENODEV; } mdss_dsi_pm_qos_remove_request(); if (msm_dss_config_vreg(&pdev->dev, ctrl_pdata->panel_power_data.vreg_config, ctrl_pdata->panel_power_data.num_vreg, 1) < 0) Loading Loading
drivers/video/msm/mdss/mdss_dsi.c +34 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <linux/clk.h> #include <linux/uaccess.h> #include <linux/msm-bus.h> #include <linux/pm_qos.h> #include "mdss.h" #include "mdss_panel.h" Loading @@ -38,6 +39,30 @@ /* Master structure to hold all the information about the DSI/panel */ static struct mdss_dsi_data *mdss_dsi_res; #define DSI_DISABLE_PC_LATENCY 100 #define DSI_ENABLE_PC_LATENCY PM_QOS_DEFAULT_VALUE static struct pm_qos_request mdss_dsi_pm_qos_request; static void mdss_dsi_pm_qos_add_request(void) { pr_debug("%s: add request", __func__); pm_qos_add_request(&mdss_dsi_pm_qos_request, PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE); } static void mdss_dsi_pm_qos_remove_request(void) { pr_debug("%s: remove request", __func__); pm_qos_remove_request(&mdss_dsi_pm_qos_request); } static void mdss_dsi_pm_qos_update_request(int val) { pr_debug("%s: update request %d", __func__, val); pm_qos_update_request(&mdss_dsi_pm_qos_request, val); } static int mdss_dsi_pinctrl_set_state(struct mdss_dsi_ctrl_pdata *ctrl_pdata, bool active); Loading Loading @@ -1412,6 +1437,8 @@ static int mdss_dsi_unblank(struct mdss_panel_data *pdata) __func__, ctrl_pdata, ctrl_pdata->ndx, pdata->panel_info.panel_power_state, ctrl_pdata->ctrl_state); mdss_dsi_pm_qos_update_request(DSI_DISABLE_PC_LATENCY); if (mdss_dsi_is_ctrl_clk_master(ctrl_pdata)) sctrl = mdss_dsi_get_ctrl_clk_slave(); Loading Loading @@ -1453,6 +1480,9 @@ error: if (sctrl) mdss_dsi_clk_ctrl(sctrl, sctrl->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_OFF); mdss_dsi_pm_qos_update_request(DSI_ENABLE_PC_LATENCY); pr_debug("%s-:\n", __func__); return ret; Loading Loading @@ -2884,6 +2914,8 @@ static int mdss_dsi_ctrl_probe(struct platform_device *pdev) else ctrl_pdata->shared_data->dsi1_active = true; mdss_dsi_pm_qos_add_request(); return 0; error_shadow_clk_deinit: Loading Loading @@ -3340,6 +3372,8 @@ static int mdss_dsi_ctrl_remove(struct platform_device *pdev) return -ENODEV; } mdss_dsi_pm_qos_remove_request(); if (msm_dss_config_vreg(&pdev->dev, ctrl_pdata->panel_power_data.vreg_config, ctrl_pdata->panel_power_data.num_vreg, 1) < 0) Loading