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;
}