msm_fb: call complete for no_update timer after power flag is set

In Suspend case, after we complete for no_update timer and before
we set power down flag to false we might recyle the CABL sequence
which might cause do_hist to fail till resume

CRs-Fixed: 434491
Change-Id: I51f9f0d9edb26c7671d44162f55c01acdde8f3d7
Signed-off-by: Kalyan Thota <kalyant@codeaurora.org>
This commit is contained in:
Kalyan Thota 2013-01-10 20:13:37 +05:30 committed by Stephen Boyd
parent cd5918a715
commit f5b1487eb2
2 changed files with 12 additions and 9 deletions

View file

@ -1,4 +1,5 @@
/* Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
/*
* Copyright (c) 2009-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
@ -3347,9 +3348,6 @@ int mdp4_overlay_play(struct fb_info *info, struct msmfb_overlay_data *req)
if (mfd == NULL)
return -ENODEV;
if (!mfd->panel_power_on) /* suspended */
return -EPERM;
pipe = mdp4_overlay_ndx2pipe(req->id);
if (pipe == NULL) {
mdp4_stat.err_play++;

View file

@ -1,4 +1,5 @@
/* drivers/video/msm/msm_fb.c
/*
* drivers/video/msm/msm_fb.c
*
* Core MSM framebuffer driver.
*
@ -545,10 +546,6 @@ static int msm_fb_suspend_sub(struct msm_fb_data_type *mfd)
if ((!mfd) || (mfd->key != MFD_KEY))
return 0;
if (mfd->msmfb_no_update_notify_timer.function)
del_timer(&mfd->msmfb_no_update_notify_timer);
complete(&mfd->msmfb_no_update_notify);
/*
* suspend this channel
*/
@ -946,6 +943,11 @@ static int msm_fb_blank_sub(int blank_mode, struct fb_info *info,
mfd->op_enable = FALSE;
curr_pwr_state = mfd->panel_power_on;
mfd->panel_power_on = FALSE;
if (mfd->msmfb_no_update_notify_timer.function)
del_timer(&mfd->msmfb_no_update_notify_timer);
complete(&mfd->msmfb_no_update_notify);
bl_updated = 0;
/* clean fb to prevent displaying old fb */
@ -3169,6 +3171,9 @@ static int msmfb_overlay_play(struct fb_info *info, unsigned long *argp)
struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
struct msm_fb_panel_data *pdata;
if (!mfd->panel_power_on) /* suspended */
return -EPERM;
if (mfd->overlay_play_enable == 0) /* nothing to do */
return 0;