mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
msm: display: reset vsync state when display is turned on
In the case that vsync ctrl is unbalanced, vsync IRQ is cleared in suspend, vsync cannot be enabled after resume. Clear the status when display is turned on CRs-fixed: 449155 Change-Id: I5ecf23053b60d1fbd91f042758d67d39c83ab444 Signed-off-by: Ken Zhang <kenz@codeaurora.org>
This commit is contained in:
parent
c58e2f4bb2
commit
8a2eb95560
6 changed files with 8 additions and 1 deletions
|
@ -1033,6 +1033,7 @@ int mdp4_dsi_cmd_on(struct platform_device *pdev)
|
|||
vctrl = &vsync_ctrl_db[cndx];
|
||||
vctrl->mfd = mfd;
|
||||
vctrl->dev = mfd->fbi->dev;
|
||||
vctrl->vsync_enabled = 0;
|
||||
|
||||
mdp_clk_ctrl(1);
|
||||
mdp4_overlay_update_dsi_cmd(mfd);
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
static int first_pixel_start_x;
|
||||
static int first_pixel_start_y;
|
||||
static int dsi_video_enabled;
|
||||
static int vsync_irq_cnt;
|
||||
|
||||
#define MAX_CONTROLLER 1
|
||||
|
||||
|
@ -283,7 +284,6 @@ int mdp4_dsi_video_pipe_commit(int cndx, int wait)
|
|||
static void mdp4_video_vsync_irq_ctrl(int cndx, int enable)
|
||||
{
|
||||
struct vsycn_ctrl *vctrl;
|
||||
static int vsync_irq_cnt;
|
||||
|
||||
vctrl = &vsync_ctrl_db[cndx];
|
||||
|
||||
|
@ -570,6 +570,8 @@ int mdp4_dsi_video_on(struct platform_device *pdev)
|
|||
vctrl->mfd = mfd;
|
||||
vctrl->dev = mfd->fbi->dev;
|
||||
vctrl->blt_ctrl = pinfo->lcd.blt_ctrl;
|
||||
vctrl->vsync_irq_enabled = 0;
|
||||
vsync_irq_cnt = 0;
|
||||
|
||||
/* mdp clock on */
|
||||
mdp_clk_ctrl(1);
|
||||
|
|
|
@ -588,6 +588,7 @@ int mdp4_dtv_on(struct platform_device *pdev)
|
|||
return -EINVAL;
|
||||
|
||||
vctrl->dev = mfd->fbi->dev;
|
||||
vctrl->vsync_irq_enabled = 0;
|
||||
|
||||
mdp_footswitch_ctrl(TRUE);
|
||||
/* Mdp clock enable */
|
||||
|
|
|
@ -525,6 +525,7 @@ int mdp4_lcdc_on(struct platform_device *pdev)
|
|||
|
||||
vctrl->mfd = mfd;
|
||||
vctrl->dev = mfd->fbi->dev;
|
||||
vctrl->vsync_irq_enabled = 0;
|
||||
|
||||
/* mdp clock on */
|
||||
mdp_clk_ctrl(1);
|
||||
|
|
|
@ -108,6 +108,7 @@ int mdp_dsi_video_on(struct platform_device *pdev)
|
|||
|
||||
vsync_cntrl.dev = mfd->fbi->dev;
|
||||
atomic_set(&vsync_cntrl.suspend, 0);
|
||||
vsync_cntrl.vsync_irq_enabled = 0;
|
||||
bpp = fbi->var.bits_per_pixel / 8;
|
||||
buf = (uint8 *) fbi->fix.smem_start;
|
||||
|
||||
|
|
|
@ -126,6 +126,7 @@ int mdp_lcdc_on(struct platform_device *pdev)
|
|||
var = &fbi->var;
|
||||
vsync_cntrl.dev = mfd->fbi->dev;
|
||||
atomic_set(&vsync_cntrl.suspend, 0);
|
||||
vsync_cntrl.vsync_irq_enabled = 0;
|
||||
|
||||
/* MDP cmd block enable */
|
||||
mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_ON, FALSE);
|
||||
|
|
Loading…
Reference in a new issue