static int mdss_dsi_panel_off(struct mdss_panel_data *pdata) { struct mipi_panel_info *mipi; struct mdss_dsi_ctrl_pdata *ctrl = NULL; if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); return -EINVAL; } ctrl = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); pr_debug("%s: ctrl=%p ndx=%d\n", __func__, ctrl, ctrl->ndx); mipi = &pdata->panel_info.mipi; if (!gpio_get_value(ctrl->disp_en_gpio)) return 0; if (ctrl->off_cmds.cmd_cnt) mdss_dsi_panel_cmds_send(ctrl, &ctrl->off_cmds); mutex_unlock(&panel_cmd_mutex); #ifdef CONFIG_POWERSUSPEND set_power_suspend_state_panel_hook(POWER_SUSPEND_ACTIVE); #endif pr_info("%s:\n", __func__); return 0; }
static int mdss_dsi_panel_on(struct mdss_panel_data *pdata) { struct mipi_panel_info *mipi; struct mdss_dsi_ctrl_pdata *ctrl = NULL; if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); return -EINVAL; } #ifdef CONFIG_POWERSUSPEND set_power_suspend_state_panel_hook(POWER_SUSPEND_INACTIVE); #endif ctrl = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); mipi = &pdata->panel_info.mipi; pr_debug("%s: ctrl=%p ndx=%d\n", __func__, ctrl, ctrl->ndx); if (ctrl->on_cmds.cmd_cnt) mdss_dsi_panel_cmds_send(ctrl, &ctrl->on_cmds); pr_info("%s\n", __func__); return 0; }
static int mdss_dsi_panel_off(struct mdss_panel_data *pdata) { struct mipi_panel_info *mipi; struct mdss_dsi_ctrl_pdata *ctrl = NULL; #ifdef CONFIG_TOUCHSCREEN_PREVENT_SLEEP #if defined(CONFIG_TOUCHSCREEN_SWEEP2WAKE) || defined(CONFIG_TOUCHSCREEN_DOUBLETAP2WAKE) bool prevent_sleep = false; #endif #if defined(CONFIG_TOUCHSCREEN_SWEEP2WAKE) prevent_sleep = (s2w_switch > 0); #endif #if defined(CONFIG_TOUCHSCREEN_DOUBLETAP2WAKE) prevent_sleep = prevent_sleep || (dt2w_switch > 0); #endif if (prevent_sleep && in_phone_call) prevent_sleep = false; #endif #ifdef CONFIG_PWRKEY_SUSPEND if (pwrkey_pressed) prevent_sleep = false; #endif if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); return -EINVAL; } ctrl = container_of(pdata, struct mdss_dsi_ctrl_pdata, panel_data); pr_debug("%s: ctrl=%p ndx=%d\n", __func__, ctrl, ctrl->ndx); mipi = &pdata->panel_info.mipi; if (!gpio_get_value(ctrl->disp_en_gpio)) return 0; #ifdef CONFIG_TOUCHSCREEN_PREVENT_SLEEP if (prevent_sleep) { ctrl->off_cmds.cmds[1].payload[0] = 0x11; } else { ctrl->off_cmds.cmds[1].payload[0] = 0x10; } #endif if (ctrl->off_cmds.cmd_cnt) mdss_dsi_panel_cmds_send(ctrl, &ctrl->off_cmds); #ifdef CONFIG_POWERSUSPEND set_power_suspend_state_panel_hook(POWER_SUSPEND_ACTIVE); #endif pr_info("%s:\n", __func__); return 0; }