]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00156319-2 mxc edid: use vmode as aspect rate flag
authorJason Chen <b02280@freescale.com>
Tue, 13 Sep 2011 05:01:50 +0000 (13:01 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:33:13 +0000 (08:33 +0200)
Use vmode as aspect rate flag.
which is more easier to use.

Signed-off-by: Jason Chen <b02280@freescale.com>
drivers/video/mxc/mxc_edid.c
drivers/video/mxc/mxcfb_sii902x.c
drivers/video/mxc_hdmi.c

index 9e7c87ef43ccaa02de881bafbf4aba85b077d761..48502d05d58bba0f57eab3498f74b2db64752de5 100644 (file)
@@ -43,94 +43,94 @@ const struct fb_videomode mxc_cea_mode[64] = {
        /* #1: 640x480p@59.94/60Hz 4:3 */
        [1] = {
                NULL, 60, 640, 480, 39722, 48, 16, 33, 10, 96, 2, 0,
-               FB_VMODE_NONINTERLACED, FB_MODE_ASPECT_4_3,
+               FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_4_3, 0,
        },
        /* #2: 720x480p@59.94/60Hz 4:3 */
        [2] = {
-               NULL, 60, 640, 480, 39722, 48, 16, 33, 10, 96, 2, 0,
-               FB_VMODE_NONINTERLACED, FB_MODE_ASPECT_4_3,
+               NULL, 60, 720, 480, 37037, 60, 16, 30, 9, 62, 6, 0,
+               FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_4_3, 0,
        },
        /* #3: 720x480p@59.94/60Hz 16:9 */
        [3] = {
                NULL, 60, 720, 480, 37037, 60, 16, 30, 9, 62, 6, 0,
-               FB_VMODE_NONINTERLACED, FB_MODE_ASPECT_16_9,
+               FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_16_9, 0,
        },
        /* #4: 1280x720p@59.94/60Hz 16:9 */
        [4] = {
                NULL, 60, 1280, 720, 13468, 220, 110, 20, 5, 40, 5,
                FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-               FB_VMODE_NONINTERLACED, FB_MODE_ASPECT_16_9,
+               FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_16_9, 0
        },
        /* #5: 1920x1080i@59.94/60Hz 16:9 */
        [5] = {
                NULL, 60, 1920, 1080, 13763, 148, 88, 15, 2, 44, 5,
                FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-               FB_VMODE_INTERLACED, FB_MODE_ASPECT_16_9,
+               FB_VMODE_INTERLACED | FB_VMODE_ASPECT_16_9, 0,
        },
        /* #6: 720(1440)x480iH@59.94/60Hz 4:3 */
        [6] = {
                NULL, 60, 1440, 480, 18554/*37108*/, 114, 38, 15, 4, 124, 3, 0,
-               FB_VMODE_INTERLACED, FB_MODE_ASPECT_4_3,
+               FB_VMODE_INTERLACED | FB_VMODE_ASPECT_4_3, 0,
        },
        /* #7: 720(1440)x480iH@59.94/60Hz 16:9 */
        [7] = {
                NULL, 60, 1440, 480, 18554/*37108*/, 114, 38, 15, 4, 124, 3, 0,
-               FB_VMODE_INTERLACED, FB_MODE_ASPECT_16_9,
+               FB_VMODE_INTERLACED | FB_VMODE_ASPECT_16_9, 0,
        },
        /* #8: 720(1440)x240pH@59.94/60Hz 4:3 */
        [8] = {
                NULL, 60, 1440, 240, 18554, 114, 38, 16, 4, 124, 3, 0,
-               FB_VMODE_NONINTERLACED, FB_MODE_ASPECT_16_9,
+               FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_16_9, 0,
        },
        /* #9: 720(1440)x240pH@59.94/60Hz 16:9 */
        [9] = {
                NULL, 60, 1440, 240, 18554, 114, 38, 16, 4, 124, 3, 0,
-               FB_VMODE_NONINTERLACED, FB_MODE_ASPECT_16_9,
+               FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_16_9, 0,
        },
        /* #16: 1920x1080p@60Hz 16:9 */
        [16] = {
                NULL, 60, 1920, 1080, 6734, 148, 88, 36, 4, 44, 5,
                FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-               FB_VMODE_NONINTERLACED, FB_MODE_ASPECT_16_9,
+               FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_16_9, 0,
        },
        /* #17: 720x576pH@50Hz 4:3 */
        [17] = {
                NULL, 50, 720, 576, 37037, 68, 12, 39, 5, 64, 5, 0,
-               FB_VMODE_NONINTERLACED, FB_MODE_ASPECT_4_3,
+               FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_4_3, 0,
        },
        /* #18: 720x576pH@50Hz 16:9 */
        [18] = {
                NULL, 50, 720, 576, 37037, 68, 12, 39, 5, 64, 5, 0,
-               FB_VMODE_NONINTERLACED, FB_MODE_ASPECT_16_9,
+               FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_16_9, 0,
        },
        /* #19: 1280x720p@50Hz */
        [19] = {
                NULL, 50, 1280, 720, 13468, 220, 440, 20, 5, 40, 5,
                FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-               FB_VMODE_NONINTERLACED, FB_MODE_ASPECT_16_9,
+               FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_16_9, 0,
        },
        /* #20: 1920x1080i@50Hz */
        [20] = {
                NULL, 50, 1920, 1080, 13480, 148, 528, 15, 5, 528, 5,
                FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-               FB_VMODE_INTERLACED, FB_MODE_ASPECT_16_9,
+               FB_VMODE_INTERLACED | FB_VMODE_ASPECT_16_9, 0,
        },
        /* #31: 1920x1080p@50Hz */
        [31] = {
                NULL, 50, 1920, 1080, 6734, 148, 528, 36, 4, 44, 5,
                FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-               FB_VMODE_NONINTERLACED, FB_MODE_ASPECT_16_9,
+               FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_16_9, 0,
        },
        /* #32: 1920x1080p@23.98/24Hz */
        [32] = {
                NULL, 24, 1920, 1080, 13468, 148, 638, 36, 4, 44, 5,
                FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
-               FB_VMODE_NONINTERLACED, FB_MODE_ASPECT_16_9,
+               FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_16_9, 0,
        },
        /* #35: (2880)x480p4x@59.94/60Hz */
        [35] = {
                NULL, 60, 2880, 480, 9250, 240, 64, 30, 9, 248, 6, 0,
-               FB_VMODE_NONINTERLACED, FB_MODE_ASPECT_4_3,
+               FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_4_3, 0,
        },
 };
 
@@ -453,17 +453,10 @@ EXPORT_SYMBOL(mxc_edid_var_to_vic);
 int mxc_edid_mode_to_vic(const struct fb_videomode *mode)
 {
        int i;
-       u32 aspect_flags = FB_MODE_ASPECT_16_9 | FB_MODE_ASPECT_4_3;
 
        for (i = 0; i < ARRAY_SIZE(mxc_cea_mode); i++) {
-               if (mxc_edid_fb_mode_is_equal(mode, &mxc_cea_mode[i])) {
-                       if (mode->flag & FB_MODE_IS_STANDARD) {
-                               if ((mode->flag & aspect_flags) ==
-                                       mxc_cea_mode[i].flag)
-                                       break;
-                       } else
-                               break;
-               }
+               if (mxc_edid_fb_mode_is_equal(mode, &mxc_cea_mode[i]))
+                       break;
        }
 
        if (i == ARRAY_SIZE(mxc_cea_mode))
index 02f798bbf1758923296878d4acba3678b2f9c8dc..f626f649f9ccef92f5d7c73d91e6e895385d3a00 100644 (file)
@@ -671,7 +671,11 @@ static void sii902x_setup(struct sii902x_data *sii902x, struct fb_info *fbi)
        /* reg 0x0a: set output format to RGB */
        sii902x->tpivmode[2] = 0x00;
 
-       if (fbi->var.xres/16 == fbi->var.yres/9)
+       if (fbi->var.vmode & FB_VMODE_ASPECT_16_9)
+               sii902x->aspect_ratio = VMD_ASPECT_RATIO_16x9;
+       else if (fbi->var.vmode & FB_VMODE_ASPECT_4_3)
+               sii902x->aspect_ratio = VMD_ASPECT_RATIO_4x3;
+       else if (fbi->var.xres/16 == fbi->var.yres/9)
                sii902x->aspect_ratio = VMD_ASPECT_RATIO_16x9;
        else
                sii902x->aspect_ratio = VMD_ASPECT_RATIO_4x3;
index 7690151e9d1ac252c2b7b13460adae64042028f1..4821ba4eada966ba3148e2ff2de869f13326fde0 100644 (file)
@@ -1134,7 +1134,7 @@ static void hdmi_config_AVI(struct mxc_hdmi *hdmi)
        /* Use mode from list extracted from EDID to get aspect ratio */
        if (!list_empty(&hdmi->fbi->modelist)) {
                edid_mode = fb_find_nearest_mode(&mode, &hdmi->fbi->modelist);
-               if (edid_mode->flag & FB_MODE_ASPECT_16_9)
+               if (edid_mode->vmode & FB_VMODE_ASPECT_16_9)
                        aspect_16_9 = true;
                else
                        aspect_16_9 = false;