diff options
author | Jason Chen <b02280@freescale.com> | 2010-07-15 11:08:46 +0800 |
---|---|---|
committer | Jason Chen <b02280@freescale.com> | 2010-07-15 18:08:03 +0800 |
commit | ece55fe828ae3718c6fa62924acc0d1036855a42 (patch) | |
tree | 452daae649a9a1d49ee1d22e733701b1ce12135f /drivers | |
parent | c879f2d830994336ac1bc611997a9ba1e0a75075 (diff) |
ENGR00125172 ipuv3 fb: add sync for DP swap
During DP swap, other fb operation should not happen.
Signed-off-by: Jason Chen <b02280@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/mxc/mxc_ipuv3_fb.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/video/mxc/mxc_ipuv3_fb.c b/drivers/video/mxc/mxc_ipuv3_fb.c index 856ca297dbd7..1cdb55d899f3 100644 --- a/drivers/video/mxc/mxc_ipuv3_fb.c +++ b/drivers/video/mxc/mxc_ipuv3_fb.c @@ -1505,6 +1505,7 @@ static ssize_t swap_disp_chan(struct device *dev, struct mxcfb_info *mxcfbi = (struct mxcfb_info *)info->par; struct mxcfb_info *fg_mxcfbi = NULL; + acquire_console_sem(); /* swap only happen between DP-BG and DC, while DP-FG disable */ if (((mxcfbi->ipu_ch == MEM_BG_SYNC) && (strstr(buf, "1-layer-fb") != NULL)) || @@ -1524,6 +1525,7 @@ static ssize_t swap_disp_chan(struct device *dev, fg_mxcfbi->cur_blank == FB_BLANK_UNBLANK) { dev_err(dev, "Can not switch while fb2(fb-fg) is on.\n"); + release_console_sem(); return count; } @@ -1531,6 +1533,7 @@ static ssize_t swap_disp_chan(struct device *dev, dev_err(dev, "Swap display channel failed.\n"); } + release_console_sem(); return count; } DEVICE_ATTR(fsl_disp_property, 644, show_disp_chan, swap_disp_chan); |