diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/mxc/mxc_elcdif_fb.c | 5 | ||||
-rw-r--r-- | drivers/video/mxc/mxc_ipuv3_fb.c | 4 | ||||
-rw-r--r-- | drivers/video/mxc_hdmi.c | 6 |
3 files changed, 14 insertions, 1 deletions
diff --git a/drivers/video/mxc/mxc_elcdif_fb.c b/drivers/video/mxc/mxc_elcdif_fb.c index b3691b540522..0e56ae6c3df3 100644 --- a/drivers/video/mxc/mxc_elcdif_fb.c +++ b/drivers/video/mxc/mxc_elcdif_fb.c @@ -961,6 +961,11 @@ static int mxc_elcdif_fb_set_par(struct fb_info *fbi) fbi->mode = (struct fb_videomode *)fb_match_mode(&fbi->var, &fbi->modelist); + /* Clear activate as not Reconfiguring framebuffer again */ + if ((fbi->var.activate & FB_ACTIVATE_FORCE) && + (fbi->var.activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_NOW) + fbi->var.activate = FB_ACTIVATE_NOW; + data->var = fbi->var; return 0; diff --git a/drivers/video/mxc/mxc_ipuv3_fb.c b/drivers/video/mxc/mxc_ipuv3_fb.c index 429b7b863c24..9deffbbb0926 100644 --- a/drivers/video/mxc/mxc_ipuv3_fb.c +++ b/drivers/video/mxc/mxc_ipuv3_fb.c @@ -685,6 +685,10 @@ static int mxcfb_set_par(struct fb_info *fbi) } } + /* Clear activate as not Reconfiguring framebuffer again */ + if ((fbi->var.activate & FB_ACTIVATE_FORCE) && + (fbi->var.activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_NOW) + fbi->var.activate = FB_ACTIVATE_NOW; mxc_fbi->cur_var = fbi->var; if (ovfbi_enable) { mxc_fbi_fg->cur_blank = FB_BLANK_UNBLANK; diff --git a/drivers/video/mxc_hdmi.c b/drivers/video/mxc_hdmi.c index 8902fb2b0b5e..bffac867bc6e 100644 --- a/drivers/video/mxc_hdmi.c +++ b/drivers/video/mxc_hdmi.c @@ -2314,6 +2314,7 @@ static int mxc_hdmi_fb_event(struct notifier_block *nb, { struct fb_event *event = v; struct mxc_hdmi *hdmi = container_of(nb, struct mxc_hdmi, nb); + struct fb_videomode *mode; if (strcmp(event->info->fix.id, hdmi->fbi->fix.id)) return 0; @@ -2333,7 +2334,10 @@ static int mxc_hdmi_fb_event(struct notifier_block *nb, case FB_EVENT_MODE_CHANGE: dev_dbg(&hdmi->pdev->dev, "event=FB_EVENT_MODE_CHANGE\n"); - if (hdmi->fb_reg) + mode = (struct fb_videomode *)event->data; + if ((hdmi->fb_reg) && + (mode != NULL) && + !fb_mode_is_equal(&hdmi->previous_mode, mode)) mxc_hdmi_setup(hdmi, val); break; |