diff options
author | Sandor Yu <R01008@freescale.com> | 2012-08-22 10:57:50 +0800 |
---|---|---|
committer | Eric Nelson <eric.nelson@boundarydevices.com> | 2012-08-28 09:51:33 -0700 |
commit | 1e3c342aa10de018197a6cecfc474a5fe827a743 (patch) | |
tree | 08ae5aafdf9ac022e27b5cb96c4e400779f1a786 /drivers | |
parent | 67a718bd0c8856c5d872844b83bf50e14151e61c (diff) |
ENGR00220538 HDMI: Clock mismatch in suspend&resume when video playback
In suspend/resume and HDMI plugin/plugout stress test,
sometimes fbcon will call fb_set_par with
parameter fb_var_screeninfo that xres anfd yres is zero.
MX frame buffer driver can not correct handle this casue,
it will cause IPU pixel clock gating/ungating mismatch.
Check fb_var_screeninfo parameter in mxcfb_check_var and
mxcfb_set_par function, returned if xres,yres zero.
Signed-off-by: Sandor Yu <R01008@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/mxc/mxc_ipuv3_fb.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/video/mxc/mxc_ipuv3_fb.c b/drivers/video/mxc/mxc_ipuv3_fb.c index 5e074e712548..745c485016d0 100644 --- a/drivers/video/mxc/mxc_ipuv3_fb.c +++ b/drivers/video/mxc/mxc_ipuv3_fb.c @@ -361,6 +361,9 @@ static int mxcfb_set_par(struct fb_info *fbi) dev_dbg(fbi->device, "Reconfiguring framebuffer\n"); + if (fbi->var.xres == 0 || fbi->var.yres == 0) + return 0; + if (ovfbi_enable) { ov_pos_ret = ipu_disp_get_window_pos( mxc_fbi_fg->ipu, mxc_fbi_fg->ipu_ch, @@ -709,6 +712,10 @@ static int mxcfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) u32 htotal; struct mxcfb_info *mxc_fbi = (struct mxcfb_info *)info->par; + + if (var->xres == 0 || var->yres == 0) + return 0; + /* fg should not bigger than bg */ if (mxc_fbi->ipu_ch == MEM_FG_SYNC) { struct fb_info *fbi_tmp; |