MLK-14655-2 video: mxsfb: add default videomode for overlayfb
authorFancy Fang <chen.fang@nxp.com>
Mon, 10 Apr 2017 09:26:48 +0000 (17:26 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:21:52 +0000 (15:21 -0500)
Use the videomode of primary fb as the default videomode
for overlay fb during overlay fb initialization process.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit c3f12ccefc2025fbe4b9280e5715767f6dc72442)

drivers/video/fbdev/mxsfb.c

index c9da44f..fd5364e 100644 (file)
@@ -2002,6 +2002,7 @@ static void init_mxsfb_overlay(struct mxsfb_info *fbi,
        ofb->ol_fb->fbops = &overlay_fb_ops;
        ofb->ol_fb->node  = -1;
        ofb->ol_fb->par   = ofb;
+       INIT_LIST_HEAD(&ofb->ol_fb->modelist);
 
        ofb->id = 0;
        ofb->ops = &ofb_ops;
@@ -2044,6 +2045,7 @@ static void mxsfb_overlay_init(struct mxsfb_info *fbi)
 {
        int ret;
        struct mxsfb_layer *ofb = &fbi->overlay;
+       struct fb_videomode ofb_vm;
 
        ofb->dev = &fbi->pdev->dev;
        ofb->ol_fb = framebuffer_alloc(0, ofb->dev);
@@ -2054,6 +2056,14 @@ static void mxsfb_overlay_init(struct mxsfb_info *fbi)
 
        init_mxsfb_overlay(fbi, ofb);
 
+       /* add videomode to overlay fb */
+       fb_var_to_videomode(&ofb_vm, &fbi->fb_info->var);
+       ret = fb_add_videomode(&ofb_vm, &ofb->ol_fb->modelist);
+       if (ret) {
+               dev_err(ofb->dev, "add vm to ofb failed\n");
+               goto fb_release;
+       }
+
        ret = register_framebuffer(ofb->ol_fb);
        if (ret) {
                dev_err(ofb->dev, "failed to register overlay\n");