void mdp4_dsi_cmd_kickoff_ui(struct msm_fb_data_type *mfd,
                             struct mdp4_overlay_pipe *pipe)
{

    pr_debug("%s: pid=%d\n", __func__, current->pid);
    mdp4_dsi_cmd_overlay_kickoff(mfd, pipe);
}
Пример #2
0
void mdp4_dsi_cmd_kickoff_video(struct msm_fb_data_type *mfd,
				struct mdp4_overlay_pipe *pipe)
{
	/*
	 * a video kickoff may happen before UI kickoff after
	 * blt enabled. mdp4_overlay_update_dsi_cmd() need
	 * to be called before kickoff.
	 * vice versa for blt disabled.
	 */

#ifdef FACTORY_TEST
	if (!is_lcd_connected)
		return;
#endif
	if (dsi_pipe->blt_addr && dsi_pipe->blt_cnt == 0)
		mdp4_overlay_update_dsi_cmd(mfd); /* first time */
	else if (dsi_pipe->blt_addr == 0  && dsi_pipe->blt_cnt) {
		mdp4_overlay_update_dsi_cmd(mfd); /* last time */
		dsi_pipe->blt_cnt = 0;
	}

	pr_debug("%s: blt_addr=%d blt_cnt=%d\n",
		__func__, (int)dsi_pipe->blt_addr, dsi_pipe->blt_cnt);

	if (dsi_pipe->blt_addr)
		mdp4_dsi_blt_dmap_busy_wait(dsi_mfd);

	mdp4_dsi_cmd_overlay_kickoff(mfd, pipe);
}
Пример #3
0
void mdp4_dsi_cmd_kickoff_video(struct msm_fb_data_type *mfd,
				struct mdp4_overlay_pipe *pipe)
{
	if (dsi_pipe->blt_addr && dsi_pipe->blt_cnt == 0)
		mdp4_overlay_update_dsi_cmd(mfd);

	mdp4_dsi_cmd_overlay_kickoff(mfd, pipe);
}
Пример #4
0
void mdp4_dsi_cmd_kickoff_ui(struct msm_fb_data_type *mfd,
                             struct mdp4_overlay_pipe *pipe)
{
#ifdef OVDEBUG
    printk(KERN_INFO "%s: pid=%d\n", __func__, current->pid);
#endif
    mdp4_dsi_cmd_overlay_kickoff(mfd, pipe);
}
Пример #5
0
void mdp4_dsi_cmd_kickoff_video(struct msm_fb_data_type *mfd,
				struct mdp4_overlay_pipe *pipe)
{
	if (dsi_pipe->blt_addr && dsi_pipe->blt_cnt == 0)
		mdp4_overlay_update_dsi_cmd(mfd);

	pr_debug("%s: pid=%d\n", __func__, current->pid);
	mdp4_dsi_cmd_overlay_kickoff(mfd, pipe);
}
void mdp4_dsi_cmd_overlay_restore(void)
{
    /* mutex holded by caller */
    if (dsi_mfd && dsi_pipe) {
        mdp4_dsi_cmd_dma_busy_wait(dsi_mfd);
        mipi_dsi_mdp_busy_wait(dsi_mfd);
        mdp4_overlay_update_dsi_cmd(dsi_mfd);
        mdp4_dsi_cmd_overlay_kickoff(dsi_mfd, dsi_pipe);
    }
}
Пример #7
0
void mdp4_dsi_cmd_kickoff_ui(struct msm_fb_data_type *mfd,
				struct mdp4_overlay_pipe *pipe)
{

#ifdef FACTORY_TEST
	if (!is_lcd_connected)
		return;
#endif
	pr_debug("%s: pid=%d\n", __func__, current->pid);
	mdp4_dsi_cmd_overlay_kickoff(mfd, pipe);
}
Пример #8
0
void mdp4_dsi_cmd_kickoff_video(struct msm_fb_data_type *mfd,
                                struct mdp4_overlay_pipe *pipe)
{
#ifdef OVDEBUG
    printk(KERN_INFO "%s: pid=%d\n", __func__, current->pid);
#endif

    if (dsi_pipe->blt_addr && dsi_pipe->blt_cnt == 0)
        mdp4_overlay_update_dsi_cmd(mfd);

    if (dsi_pipe->blt_addr)
        mdp4_dsi_blt_dmap_busy_wait(dsi_mfd);
    mdp4_dsi_cmd_overlay_kickoff(mfd, pipe);
}
void mdp4_dsi_cmd_overlay_restore(void)
{

#ifdef OVDEBUG
	printk("%s: start, pid=%d\n", __func__, current->pid);
#endif
	/* mutex holded by caller */
	if (dsi_mfd && dsi_pipe) {
		mdp4_dsi_cmd_dma_busy_wait(dsi_mfd, dsi_pipe);
		mdp4_overlay_update_dsi_cmd(dsi_mfd);
		if (dsi_pipe->blt_addr)
			mdp4_dsi_blt_dmap_busy_wait(dsi_mfd);
		mdp4_dsi_cmd_overlay_kickoff(dsi_mfd, dsi_pipe);
	}
}
Пример #10
0
void mdp4_dsi_cmd_overlay_restore(void)
{

#ifdef OVDEBUG
    printk(KERN_INFO "%s: start, pid=%d\n", __func__, current->pid);
#endif
    /* mutex holded by caller */
    if (dsi_mfd && dsi_pipe) {
        mdp4_dsi_cmd_dma_busy_wait(dsi_mfd, dsi_pipe);
        mdp4_overlay_update_dsi_cmd(dsi_mfd);
        /* FIXME: check blt_end flag is needed or not */
        if (dsi_pipe->blt_addr && dsi_pipe->blt_end == 0)
            mdp4_dsi_blt_dmap_busy_wait(dsi_mfd);
        mdp4_dsi_cmd_overlay_kickoff(dsi_mfd, dsi_pipe);
    }
}
Пример #11
0
void mdp4_dsi_cmd_overlay_restore(void)
{
#ifdef FACTORY_TEST
	if (!is_lcd_connected)
		return;
#endif
	/* mutex holded by caller */
	if (dsi_mfd && dsi_pipe) {
		mdp4_dsi_cmd_dma_busy_wait(dsi_mfd);
		mipi_dsi_mdp_busy_wait(dsi_mfd);
		mdp4_overlay_update_dsi_cmd(dsi_mfd);

		if (dsi_pipe->blt_addr)
			mdp4_dsi_blt_dmap_busy_wait(dsi_mfd);
		mdp4_dsi_cmd_overlay_kickoff(dsi_mfd, dsi_pipe);
	}
}
Пример #12
0
void mdp4_dsi_cmd_overlay(struct msm_fb_data_type *mfd)
{
	mutex_lock(&mfd->dma->ov_mutex);

	if ((mfd) && (!mfd->dma->busy) && (mfd->panel_power_on)) {
		mdp4_overlay_update_dsi_cmd(mfd);

		mdp4_dsi_cmd_overlay_kickoff(mfd, dsi_pipe);

		mdp4_stat.kickoff_dsi++;

	/* signal if pan function is waiting for the update completion */
		if (mfd->pan_waiting) {
			mfd->pan_waiting = FALSE;
			complete(&mfd->pan_comp);
		}
	}

	mutex_unlock(&mfd->dma->ov_mutex);
}
void mdp4_dsi_cmd_kickoff_video(struct msm_fb_data_type *mfd,
                                struct mdp4_overlay_pipe *pipe)
{
    /*
     * a video kickoff may happen before UI kickoff after
     * blt enabled. mdp4_overlay_update_dsi_cmd() need
     * to be called before kickoff.
     * vice versa for blt disabled.
     */
    if (dsi_pipe->ov_blt_addr && dsi_pipe->blt_cnt == 0)
        mdp4_overlay_update_dsi_cmd(mfd); /* first time */
    else if (dsi_pipe->ov_blt_addr == 0  && dsi_pipe->blt_cnt) {
        mdp4_overlay_update_dsi_cmd(mfd); /* last time */
        dsi_pipe->blt_cnt = 0;
    }

    pr_debug("%s: ov_blt_addr=%d blt_cnt=%d\n",
             __func__, (int)dsi_pipe->ov_blt_addr, dsi_pipe->blt_cnt);

    mdp4_dsi_cmd_overlay_kickoff(mfd, pipe);
}
Пример #14
0
void mdp4_dsi_cmd_kickoff_ui(struct msm_fb_data_type *mfd,
				struct mdp4_overlay_pipe *pipe)
{

	mdp4_dsi_cmd_overlay_kickoff(mfd, pipe);
}