summaryrefslogtreecommitdiff
path: root/drivers/media
diff options
context:
space:
mode:
authorJason Chen <b02280@freescale.com>2011-11-21 15:42:17 +0800
committerJason Liu <r64343@freescale.com>2012-01-09 21:07:47 +0800
commit90bdb0d612b0252f4da5111b8b6acedc9eaafc3c (patch)
tree2b2dbd23680f25e190d11fd87a2f6fe55a7d47e4 /drivers/media
parent18c53f4a3c403282cd5968fab398e0e633dd9f9e (diff)
ENGR00162701 mxc_vout: fix potential deadlock of fb_blank
add FBINFO_MISC_USEREVENT flag before calling fb_blank Signed-off-by: Jason Chen <b02280@freescale.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/mxc/output/mxc_vout.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/media/video/mxc/output/mxc_vout.c b/drivers/media/video/mxc/output/mxc_vout.c
index 661487eb1f0c..c08f2fd8b405 100644
--- a/drivers/media/video/mxc/output/mxc_vout.c
+++ b/drivers/media/video/mxc/output/mxc_vout.c
@@ -1351,7 +1351,9 @@ static int config_disp_output(struct mxc_vout_output *vout)
vout->disp_bufs[i] = fbi->fix.smem_start + i * display_buf_size;
console_lock();
+ fbi->flags |= FBINFO_MISC_USEREVENT;
ret = fb_blank(fbi, FB_BLANK_UNBLANK);
+ fbi->flags &= ~FBINFO_MISC_USEREVENT;
console_unlock();
return ret;
@@ -1363,7 +1365,9 @@ static void release_disp_output(struct mxc_vout_output *vout)
struct mxcfb_pos pos;
console_lock();
+ fbi->flags |= FBINFO_MISC_USEREVENT;
fb_blank(fbi, FB_BLANK_POWERDOWN);
+ fbi->flags &= ~FBINFO_MISC_USEREVENT;
console_unlock();
/* restore pos to 0,0 avoid fb pan display hang? */
@@ -1380,7 +1384,9 @@ static void release_disp_output(struct mxc_vout_output *vout)
if (get_ipu_channel(fbi) == MEM_BG_SYNC) {
console_lock();
+ fbi->flags |= FBINFO_MISC_USEREVENT;
fb_blank(fbi, FB_BLANK_UNBLANK);
+ fbi->flags &= ~FBINFO_MISC_USEREVENT;
console_unlock();
}
}