]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00220538 HDMI: Clock mismatch in suspend&resume when video playback
authorSandor Yu <R01008@freescale.com>
Wed, 22 Aug 2012 02:57:50 +0000 (10:57 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:35:17 +0000 (08:35 +0200)
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>
drivers/video/mxc/mxc_ipuv3_fb.c

index 5e074e71254816346b78b819ca1f24de881beb00..745c485016d0a0bb865f97e2ce556635c7842394 100644 (file)
@@ -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;