summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorSandor Yu <R01008@freescale.com>2012-08-22 10:57:50 +0800
committerXinyu Chen <xinyu.chen@freescale.com>2012-08-23 15:37:45 +0800
commitf989cfef9037fbfbb4b03e7325af4c7705cee17c (patch)
treeb1c38ca36633ad1a8312e74e125e34cc9f16a0fa /drivers
parent4ac689a555a3b0fe8fe6036308194f06cd94c3cd (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.c7
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 e904c52d83f4..5b089ebf0d5d 100644
--- a/drivers/video/mxc/mxc_ipuv3_fb.c
+++ b/drivers/video/mxc/mxc_ipuv3_fb.c
@@ -381,6 +381,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,
@@ -729,6 +732,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;