summaryrefslogtreecommitdiff
path: root/drivers/video/mxc/mxc_ipuv3_fb.c
diff options
context:
space:
mode:
authorJason Chen <b02280@freescale.com>2010-02-03 14:40:38 +0800
committerAlejandro Gonzalez <alex.gonzalez@digi.com>2010-05-24 11:50:07 +0200
commitd04c93ec65efb5429994c54d33c6a4ea291807f1 (patch)
tree986af85cc0a5f78cc24e43673122cbcf8fd54569 /drivers/video/mxc/mxc_ipuv3_fb.c
parenta1dd0445fe9edd86b958023560f281cd05892550 (diff)
ENGR00120567 fb: pan_display during fb blank mode cause system hang
will not do ipu operation during fb blank Signed-off-by: Jason Chen <b02280@freescale.com> Signed-off-by: Alejandro Gonzalez <alex.gonzalez@digi.com>
Diffstat (limited to 'drivers/video/mxc/mxc_ipuv3_fb.c')
-rw-r--r--drivers/video/mxc/mxc_ipuv3_fb.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/video/mxc/mxc_ipuv3_fb.c b/drivers/video/mxc/mxc_ipuv3_fb.c
index 3c8ad7e27527..f255c18c484a 100644
--- a/drivers/video/mxc/mxc_ipuv3_fb.c
+++ b/drivers/video/mxc/mxc_ipuv3_fb.c
@@ -1079,6 +1079,23 @@ mxcfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
(info->var.yoffset == var->yoffset))
return 0; /* No change, do nothing */
+ /* no pan display during fb blank */
+ if (mxc_fbi->ipu_ch == MEM_FG_SYNC) {
+ struct mxcfb_info *bg_mxcfbi = NULL;
+ int j;
+ for (j = 0; j < num_registered_fb; j++) {
+ bg_mxcfbi =
+ ((struct mxcfb_info *)(registered_fb[j]->par));
+
+ if (bg_mxcfbi->ipu_ch == MEM_BG_SYNC)
+ break;
+ }
+ if (bg_mxcfbi->blank != FB_BLANK_UNBLANK)
+ return -EINVAL;
+ }
+ if (mxc_fbi->blank != FB_BLANK_UNBLANK)
+ return -EINVAL;
+
y_bottom = var->yoffset;
if (!(var->vmode & FB_VMODE_YWRAP))