]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00232930 Added default video mode check, make sure it is a CEA mode.
authorSandor Yu <R01008@freescale.com>
Thu, 8 Nov 2012 08:24:10 +0000 (16:24 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:35:41 +0000 (08:35 +0200)
When system bootup without HDMI plugin, the default modelist
and default video mode will create.
Match default video mode in default CEA modelist, make sure
default video mode is a CEA mode.

Signed-off-by: Sandor Yu <R01008@freescale.com>
drivers/video/mxc_hdmi.c

index a45c347b7b9b8a3b4c226f38c13b4b882fb93197..92822f8479c6628b44adf736dfb86f49a2f764b4 100644 (file)
@@ -2092,6 +2092,7 @@ static int mxc_hdmi_disp_init(struct mxc_dispdrv_handle *disp,
        int ret = 0;
        u32 i;
        const struct fb_videomode *mode;
+       struct fb_videomode m;
        struct mxc_hdmi *hdmi = mxc_dispdrv_getdata(disp);
        struct fsl_mxc_hdmi_platform_data *plat = hdmi->pdev->dev.platform_data;
        int irq = platform_get_irq(hdmi->pdev, 0);
@@ -2205,6 +2206,21 @@ static int mxc_hdmi_disp_init(struct mxc_dispdrv_handle *disp,
 
        console_unlock();
 
+       /* Find a nearest mode in default modelist */
+       fb_var_to_videomode(&m, &hdmi->fbi->var);
+       dump_fb_videomode(&m);
+
+       mode = fb_find_nearest_mode(&m, &hdmi->fbi->modelist);
+       if (!mode) {
+               pr_err("%s: could not find mode in modelist\n", __func__);
+               return;
+       }
+
+       fb_videomode_to_var(&hdmi->fbi->var, mode);
+
+       /* Default setting HDMI working in HDMI mode*/
+       hdmi->edid_cfg.hdmi_cap = true;
+
        INIT_DELAYED_WORK(&hdmi->hotplug_work, hotplug_worker);
 
        /* Configure registers related to HDMI interrupt