msm_fb: display: wait4vsync after timing generator is turned off

When continuous splash is enabled, timing generator is enabled at
bootloader, it then needs to be turned off at mdp4_dsi_video_on()
to switch displayed content from frame buffer. wait4vsync after
timing generator is turned off is necessary to make sure DMAP has
finished fetching splash logo from original splash buffer. Otherwise,
DMAP iommu page fault may happen.

Change-Id: I35f9fb9da76f93b60d4719d147aea3246c770c9f
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
This commit is contained in:
Kuogee Hsieh 2013-01-11 15:51:08 -08:00 committed by Iliyan Malchev
parent 4947b43388
commit 9d9981459a

View file

@ -1,4 +1,4 @@
/* Copyright (c) 2010-2012, Code Aurora Forum. All rights reserved.
/* Copyright (c) 2010-2013, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@ -327,9 +327,6 @@ void mdp4_dsi_video_wait4vsync(int cndx)
if (atomic_read(&vctrl->suspend) > 0)
return;
/* start timing generator & mmu if they are not started yet */
mdp4_overlay_dsi_video_start();
mdp4_video_vsync_irq_ctrl(cndx, 1);
spin_lock_irqsave(&vctrl->spin_lock, flags);
@ -569,10 +566,12 @@ int mdp4_dsi_video_on(struct platform_device *pdev)
pipe = vctrl->base_pipe;
}
atomic_set(&vctrl->suspend, 0);
if (!(mfd->cont_splash_done)) {
mfd->cont_splash_done = 1;
mdp4_dsi_video_wait4dmap_done(0);
MDP_OUTP(MDP_BASE + DSI_VIDEO_BASE, 0);
mdp4_dsi_video_wait4vsync(0);
mipi_dsi_controller_cfg(0);
/* Clks are enabled in probe.
Disabling clocks now */
@ -601,8 +600,6 @@ int mdp4_dsi_video_on(struct platform_device *pdev)
mdp4_overlay_mdp_pipe_req(pipe, mfd);
mdp4_calc_blt_mdp_bw(mfd, pipe);
atomic_set(&vctrl->suspend, 0);
mdp4_overlay_dmap_xy(pipe); /* dma_p */
mdp4_overlay_dmap_cfg(mfd, 1);
mdp4_overlay_rgb_setup(pipe);