summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 837fe86)
raw | patch | inline | side by side (parent: 837fe86)
author | Lajos Molnar <molnar@ti.com> | |
Thu, 11 Apr 2013 08:39:01 +0000 (01:39 -0700) | ||
committer | Praneeth Bajjuri <praneeth@ti.com> | |
Fri, 12 Jul 2013 22:28:57 +0000 (17:28 -0500) |
CEA defines multiple timings with dual timing ratios that cannot
be distinguished from timings parameters. Added 2 new fb flags
to specify 4:3 or 16:9 display ratios.
Also added a flag that denotes CEA formats that require repeating
pixels.
Also added VESA_MODEDB_SIZE to vesa_code definition to ensure that
the size corresponds to the actual array size.
Change-Id: I2ab6d72682173cdaabb1c13038710d370aa2d817
Signed-off-by: Lajos Molnar <molnar@ti.com>
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
be distinguished from timings parameters. Added 2 new fb flags
to specify 4:3 or 16:9 display ratios.
Also added a flag that denotes CEA formats that require repeating
pixels.
Also added VESA_MODEDB_SIZE to vesa_code definition to ensure that
the size corresponds to the actual array size.
Change-Id: I2ab6d72682173cdaabb1c13038710d370aa2d817
Signed-off-by: Lajos Molnar <molnar@ti.com>
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
drivers/video/fbmon.c | patch | blob | history | |
drivers/video/modedb.c | patch | blob | history | |
include/linux/fb.h | patch | blob | history |
diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c
index 5c3da1bebad6b2c1ed167a55bda720d52be05ee7..977c6de31139aa19581d65c46ef0e4ae7c7bb181 100644 (file)
--- a/drivers/video/fbmon.c
+++ b/drivers/video/fbmon.c
static void get_detailed_timing(unsigned char *block,
struct fb_videomode *mode)
{
+ int v_size = V_SIZE;
+ int h_size = H_SIZE;
+
mode->xres = H_ACTIVE;
mode->yres = V_ACTIVE;
mode->pixclock = PIXEL_CLOCK;
}
mode->flag = FB_MODE_IS_DETAILED;
+ /* get aspect ratio to set flags for timings which do not have
+ aspect ration like VESA*/
+ if (h_size * 18 > v_size * 31 && h_size * 18 < v_size * 33)
+ mode->flag |= FB_FLAG_RATIO_16_9;
+ if (h_size * 18 > v_size * 23 && h_size * 18 < v_size * 25)
+ mode->flag |= FB_FLAG_RATIO_4_3;
+
DPRINTK(" %d MHz ", PIXEL_CLOCK/1000000);
DPRINTK("%d %d %d %d ", H_ACTIVE, H_ACTIVE + H_SYNC_OFFSET,
H_ACTIVE + H_SYNC_OFFSET + H_SYNC_WIDTH, H_ACTIVE + H_BLANKING);
DPRINTK("%d %d %d %d ", V_ACTIVE, V_ACTIVE + V_SYNC_OFFSET,
V_ACTIVE + V_SYNC_OFFSET + V_SYNC_WIDTH, V_ACTIVE + V_BLANKING);
+ DPRINTK("%dmm %dmm ", H_SIZE, V_SIZE);
DPRINTK("%sHSync %sVSync\n\n", (HSYNC_POSITIVE) ? "+" : "-",
(VSYNC_POSITIVE) ? "+" : "-");
}
diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c
index 4aa5f5c1bd9db4850119ce9f08833739ba3c8d4c..86431ef493725c364cb08afffdd1d8f7ef8c58ad 100644 (file)
--- a/drivers/video/modedb.c
+++ b/drivers/video/modedb.c
.upper_margin = 33, .lower_margin = 10,
.hsync_len = 96, .vsync_len = 2,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3,
.vmode = FB_VMODE_NONINTERLACED},
/* 2: 720x480p @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 720, .yres = 480, .pixclock = 37037,
.upper_margin = 30, .lower_margin = 9,
.hsync_len = 62, .vsync_len = 6,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3,
.vmode = FB_VMODE_NONINTERLACED},
/* 3: 720x480p @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 720, .yres = 480, .pixclock = 37037,
.upper_margin = 30, .lower_margin = 9,
.hsync_len = 62, .vsync_len = 6,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 4: 1280x720p @ 59.94Hz/60Hz */
{.refresh = 60, .xres = 1280, .yres = 720, .pixclock = 13468,
.upper_margin = 20, .lower_margin = 5,
.hsync_len = 40, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 5: 1920x1080i @ 59.94Hz/60Hz */
{.refresh = 60, .xres = 1920, .yres = 1080, .pixclock = 13468,
.upper_margin = 15, .lower_margin = 2,
.hsync_len = 44, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_INTERLACED},
/* 6: 720(1440)x480i @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 1440, .yres = 480, .pixclock = 37037,
.upper_margin = 15, .lower_margin = 4,
.hsync_len = 124, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 7: 720(1440)x480i @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 1440, .yres = 480, .pixclock = 37037,
.upper_margin = 15, .lower_margin = 4,
.hsync_len = 124, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 8: 720(1440)x240p @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 1440, .yres = 240, .pixclock = 37037,
.upper_margin = 15, .lower_margin = 5,
.hsync_len = 124, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 9: 720(1440)x240p @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 1440, .yres = 240, .pixclock = 37037,
.upper_margin = 15, .lower_margin = 5,
.hsync_len = 124, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 10: 2880x480i @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 2880, .yres = 480, .pixclock = 18518,
.upper_margin = 15, .lower_margin = 4,
.hsync_len = 248, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 11: 2880x480i @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 2880, .yres = 480, .pixclock = 18518,
.upper_margin = 15, .lower_margin = 4,
.hsync_len = 248, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 12: 2880x240p @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 2880, .yres = 240, .pixclock = 18518,
.upper_margin = 15, .lower_margin = 5,
.hsync_len = 248, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 13: 2880x240p @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 2880, .yres = 240, .pixclock = 18518,
.upper_margin = 15, .lower_margin = 5,
.hsync_len = 248, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 14: 1440x480p @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 1440, .yres = 480, .pixclock = 18518,
.upper_margin = 30, .lower_margin = 9,
.hsync_len = 124, .vsync_len = 6,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 15: 1440x480p @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 1440, .yres = 480, .pixclock = 18518,
.upper_margin = 30, .lower_margin = 9,
.hsync_len = 124, .vsync_len = 6,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 16: 1920x1080p @ 59.94Hz/60Hz */
{.refresh = 60, .xres = 1920, .yres = 1080, .pixclock = 6734,
.upper_margin = 36, .lower_margin = 4,
.hsync_len = 44, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 17: 720x576p @ 50Hz */
{.refresh = 50, .xres = 720, .yres = 576, .pixclock = 37037,
.upper_margin = 39, .lower_margin = 5,
.hsync_len = 64, .vsync_len = 5,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3,
.vmode = FB_VMODE_NONINTERLACED},
/* 18: 720x576p @ 50Hz */
{.refresh = 50, .xres = 720, .yres = 576, .pixclock = 37037,
.upper_margin = 39, .lower_margin = 5,
.hsync_len = 64, .vsync_len = 5,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 19: 1280x720p @ 50Hz */
{.refresh = 50, .xres = 1280, .yres = 720, .pixclock = 13468,
.upper_margin = 20, .lower_margin = 5,
.hsync_len = 40, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 20: 1920x1080i @ 50Hz */
{.refresh = 50, .xres = 1920, .yres = 1080, .pixclock = 13468,
.upper_margin = 15, .lower_margin = 2,
.hsync_len = 44, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_INTERLACED},
/* 21: 720(1440)x576i @ 50Hz */
{.refresh = 50, .xres = 1440, .yres = 576, .pixclock = 37037,
.upper_margin = 19, .lower_margin = 2,
.hsync_len = 126, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 22: 720(1440)x576i @ 50Hz */
{.refresh = 50, .xres = 1440, .yres = 576, .pixclock = 37037,
.upper_margin = 19, .lower_margin = 2,
.hsync_len = 126, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 23: 720(1440)x288p @ 50Hz */
{.refresh = 49, .xres = 1440, .yres = 288, .pixclock = 37037,
.upper_margin = 19, .lower_margin = 4,
.hsync_len = 126, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 24: 720(1440)x288p @ 50Hz */
{.refresh = 49, .xres = 1440, .yres = 288, .pixclock = 37037,
.upper_margin = 19, .lower_margin = 4,
.hsync_len = 126, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 25: 2880x576i @ 50Hz */
{.refresh = 50, .xres = 2880, .yres = 576, .pixclock = 18518,
.upper_margin = 19, .lower_margin = 2,
.hsync_len = 252, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 26: 2880x576i @ 50Hz */
{.refresh = 50, .xres = 2880, .yres = 576, .pixclock = 18518,
.upper_margin = 19, .lower_margin = 2,
.hsync_len = 252, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 27: 2880x288p @ 50Hz */
{.refresh = 49, .xres = 2880, .yres = 288, .pixclock = 18518,
.upper_margin = 19, .lower_margin = 4,
.hsync_len = 252, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 28: 2880x288p @ 50Hz */
{.refresh = 49, .xres = 2880, .yres = 288, .pixclock = 18518,
.upper_margin = 19, .lower_margin = 4,
.hsync_len = 252, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 29: 1440x576p @ 50Hz */
{.refresh = 50, .xres = 1440, .yres = 576, .pixclock = 18518,
.upper_margin = 39, .lower_margin = 5,
.hsync_len = 128, .vsync_len = 5,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 30: 1440x576p @ 50Hz */
{.refresh = 50, .xres = 1440, .yres = 576, .pixclock = 18518,
.upper_margin = 39, .lower_margin = 5,
.hsync_len = 128, .vsync_len = 5,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 31: 1920x1080p @ 50Hz */
{.refresh = 50, .xres = 1920, .yres = 1080, .pixclock = 6734,
.upper_margin = 36, .lower_margin = 4,
.hsync_len = 44, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 32: 1920x1080p @ 23.97Hz/24Hz */
{.refresh = 24, .xres = 1920, .yres = 1080, .pixclock = 13468,
.upper_margin = 36, .lower_margin = 4,
.hsync_len = 44, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 33: 1920x1080p @ 25Hz */
{.refresh = 25, .xres = 1920, .yres = 1080, .pixclock = 13468,
.upper_margin = 36, .lower_margin = 4,
.hsync_len = 44, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 34: 1920x1080p @ 29.97Hz/30Hz */
{.refresh = 30, .xres = 1920, .yres = 1080, .pixclock = 13468,
.upper_margin = 36, .lower_margin = 4,
.hsync_len = 44, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 35: 2880x480p @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 2880, .yres = 480, .pixclock = 9259,
.upper_margin = 30, .lower_margin = 9,
.hsync_len = 248, .vsync_len = 6,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 36: 2880x480p @ 59.94Hz/60Hz */
{.refresh = 59, .xres = 2880, .yres = 480, .pixclock = 9259,
.upper_margin = 30, .lower_margin = 9,
.hsync_len = 248, .vsync_len = 6,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 37: 2880x576p @ 50Hz */
{.refresh = 50, .xres = 2880, .yres = 576, .pixclock = 9259,
.upper_margin = 39, .lower_margin = 5,
.hsync_len = 256, .vsync_len = 5,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 38: 2880x576p @ 50Hz */
{.refresh = 50, .xres = 2880, .yres = 576, .pixclock = 9259,
.upper_margin = 39, .lower_margin = 5,
.hsync_len = 256, .vsync_len = 5,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_NONINTERLACED},
/* 39: 1920x1080i @ 50Hz */
{.refresh = 50, .xres = 1920, .yres = 1080, .pixclock = 13888,
.upper_margin = 57, .lower_margin = 23,
.hsync_len = 168, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_INTERLACED},
/* 40: 1920x1080i @ 100Hz */
{.refresh = 100, .xres = 1920, .yres = 1080, .pixclock = 6734,
.upper_margin = 15, .lower_margin = 2,
.hsync_len = 44, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_INTERLACED},
/* 41: 1280x720p @ 100Hz */
{.refresh = 100, .xres = 1280, .yres = 720, .pixclock = 6734,
.upper_margin = 20, .lower_margin = 5,
.hsync_len = 40, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 42: 720x576p @ 100Hz */
{.refresh = 100, .xres = 720, .yres = 576, .pixclock = 18518,
.upper_margin = 39, .lower_margin = 5,
.hsync_len = 64, .vsync_len = 5,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3,
.vmode = FB_VMODE_NONINTERLACED},
/* 43: 720x576p @ 100Hz */
{.refresh = 100, .xres = 720, .yres = 576, .pixclock = 18518,
.upper_margin = 39, .lower_margin = 5,
.hsync_len = 64, .vsync_len = 5,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 44: 720(1440)x576i @ 100Hz */
{.refresh = 100, .xres = 1440, .yres = 576, .pixclock = 18518,
.upper_margin = 19, .lower_margin = 2,
.hsync_len = 126, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 45: 720(1440)x576i @ 100Hz */
{.refresh = 100, .xres = 1440, .yres = 576, .pixclock = 18518,
.upper_margin = 19, .lower_margin = 2,
.hsync_len = 126, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 46: 1920x1080i @ 119.88/120Hz */
{.refresh = 120, .xres = 1920, .yres = 1080, .pixclock = 6734,
.upper_margin = 15, .lower_margin = 2,
.hsync_len = 44, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_INTERLACED},
/* 47: 1280x720p @ 119.88/120Hz */
{.refresh = 120, .xres = 1280, .yres = 720, .pixclock = 6734,
.upper_margin = 20, .lower_margin = 5,
.hsync_len = 40, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 48: 720x480p @ 119.88/120Hz */
{.refresh = 119, .xres = 720, .yres = 480, .pixclock = 18518,
.upper_margin = 30, .lower_margin = 9,
.hsync_len = 62, .vsync_len = 6,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3,
.vmode = FB_VMODE_NONINTERLACED},
/* 49: 720x480p @ 119.88/120Hz */
{.refresh = 119, .xres = 720, .yres = 480, .pixclock = 18518,
.upper_margin = 30, .lower_margin = 9,
.hsync_len = 62, .vsync_len = 6,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 50: 720(1440)x480i @ 119.88/120Hz */
{.refresh = 119, .xres = 1440, .yres = 480, .pixclock = 18518,
.upper_margin = 15, .lower_margin = 4,
.hsync_len = 124, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 51: 720(1440)x480i @ 119.88/120Hz */
{.refresh = 119, .xres = 1440, .yres = 480, .pixclock = 18518,
.upper_margin = 15, .lower_margin = 4,
.hsync_len = 124, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 52: 720x576p @ 200Hz */
{.refresh = 200, .xres = 720, .yres = 576, .pixclock = 9259,
.upper_margin = 39, .lower_margin = 5,
.hsync_len = 64, .vsync_len = 5,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3,
.vmode = FB_VMODE_NONINTERLACED},
/* 53: 720x576p @ 200Hz */
{.refresh = 200, .xres = 720, .yres = 576, .pixclock = 9259,
.upper_margin = 39, .lower_margin = 5,
.hsync_len = 64, .vsync_len = 5,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 54: 720(1440)x576i @ 200Hz */
{.refresh = 200, .xres = 1440, .yres = 576, .pixclock = 9259,
.upper_margin = 19, .lower_margin = 2,
.hsync_len = 126, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 55: 720(1440)x576i @ 200Hz */
{.refresh = 200, .xres = 1440, .yres = 576, .pixclock = 9259,
.upper_margin = 19, .lower_margin = 2,
.hsync_len = 126, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 56: 720x480p @ 239.76/240Hz */
{.refresh = 239, .xres = 720, .yres = 480, .pixclock = 9259,
.upper_margin = 30, .lower_margin = 9,
.hsync_len = 62, .vsync_len = 6,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3,
.vmode = FB_VMODE_NONINTERLACED},
/* 57: 720x480p @ 239.76/240Hz */
{.refresh = 239, .xres = 720, .yres = 480, .pixclock = 9259,
.upper_margin = 30, .lower_margin = 9,
.hsync_len = 62, .vsync_len = 6,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 58: 720(1440)x480i @ 239.76/240Hz */
{.refresh = 239, .xres = 1440, .yres = 480, .pixclock = 9259,
.upper_margin = 15, .lower_margin = 4,
.hsync_len = 124, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_4_3 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 59: 720(1440)x480i @ 239.76/240Hz */
{.refresh = 239, .xres = 1440, .yres = 480, .pixclock = 9259,
.upper_margin = 15, .lower_margin = 4,
.hsync_len = 124, .vsync_len = 3,
.sync = 0,
+ .flag = FB_FLAG_RATIO_16_9 | FB_FLAG_PIXEL_REPEAT,
.vmode = FB_VMODE_INTERLACED},
/* 60: 1280x720p @ 23.97Hz/24Hz */
{.refresh = 24, .xres = 1280, .yres = 720, .pixclock = 16835,
.upper_margin = 20, .lower_margin = 5,
.hsync_len = 40, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 61: 1280x720p @ 25Hz */
{.refresh = 25, .xres = 1280, .yres = 720, .pixclock = 13468,
.upper_margin = 20, .lower_margin = 5,
.hsync_len = 40, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 62: 1280x720p @ 29.97Hz/30Hz */
{.refresh = 30, .xres = 1280, .yres = 720, .pixclock = 13468,
.upper_margin = 20, .lower_margin = 5,
.hsync_len = 40, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 63: 1920x1080p @ 119.88/120Hz */
{.refresh = 120, .xres = 1920, .yres = 1080, .pixclock = 3367,
.upper_margin = 36, .lower_margin = 4,
.hsync_len = 44, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
/* 64: 1920x1080p @ 100Hz */
{.refresh = 100, .xres = 1920, .yres = 1080, .pixclock = 3367,
.upper_margin = 36, .lower_margin = 4,
.hsync_len = 44, .vsync_len = 5,
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+ .flag = FB_FLAG_RATIO_16_9,
.vmode = FB_VMODE_NONINTERLACED},
};
EXPORT_SYMBOL(cea_modes);
-const struct fb_videomode vesa_modes[] = {
+const struct fb_videomode vesa_modes[VESA_MODEDB_SIZE] = {
/* 0 640x350-85 VESA */
{ NULL, 85, 640, 350, 31746, 96, 32, 60, 32, 64, 3,
FB_SYNC_HOR_HIGH_ACT, FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA},
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 00d384c566de342a253609363836bacbd2c67843..ff4754e508ec3575865d4bf2a0beecf604993171 100644 (file)
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
};
#endif
+#define FB_FLAG_RATIO_4_3 64
+#define FB_FLAG_RATIO_16_9 128
+#define FB_FLAG_PIXEL_REPEAT 256
+
/*
* Frame buffer operations
*