diff options
author | Per Persson <per.xb.persson@stericsson.com> | 2011-05-12 10:56:36 +0200 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@stericsson.com> | 2011-09-19 15:15:24 +0200 |
commit | 535c6f18bf19f8738c9be413f006b39400e8607c (patch) | |
tree | eff7a8634c4537dc845f003d8cedf0145d4dd6be /drivers/video | |
parent | d4b7a250b8ab93ac8ed792751f3c140694934672 (diff) |
video: av8100: Add HDMI resolutions
HW supported VESA resolutions are added.
CEA resolutions 60,61 and 62 are added.
ST-Ericsson ID: 339610
ST-Ericsson Linux next: Not tested, ER 282779
ST-Ericsson FOSS-OUT ID: Trivial
Change-Id: If86513ca2c3b2558dcb063a0c4d319fe39d0cd3f
Signed-off-by: Per Persson <per.xb.persson@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/22958
Reviewed-by: Jimmy RUBIN <jimmy.rubin@stericsson.com>
Reviewed-by: QATOOLS
Reviewed-by: QATEST
Reviewed-by: Marcel TUNNISSEN <marcel.tuennissen@stericsson.com>
Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/av8100/av8100.c | 70 | ||||
-rw-r--r-- | drivers/video/mcde/display-av8100.c | 200 |
2 files changed, 224 insertions, 46 deletions
diff --git a/drivers/video/av8100/av8100.c b/drivers/video/av8100/av8100.c index 06d8d9dad5d..c3733c0ea40 100644 --- a/drivers/video/av8100/av8100.c +++ b/drivers/video/av8100/av8100.c @@ -64,7 +64,12 @@ #define AV8100_TE_LINE_NB_18 18 #define AV8100_TE_LINE_NB_21 21 #define AV8100_TE_LINE_NB_22 22 +#define AV8100_TE_LINE_NB_24 24 +#define AV8100_TE_LINE_NB_25 25 +#define AV8100_TE_LINE_NB_26 26 +#define AV8100_TE_LINE_NB_29 29 #define AV8100_TE_LINE_NB_30 30 +#define AV8100_TE_LINE_NB_32 32 #define AV8100_TE_LINE_NB_38 38 #define AV8100_TE_LINE_NB_40 40 #define AV8100_UI_X4_DEFAULT 6 @@ -363,19 +368,19 @@ struct av8100_cea av8100_all_cea[29] = { "+", 3413, 0x770, 5, 32, 1},/*RGB565*/ { "20 VESA 9 800x600 @ 60 Hz ", 109, 628, 600, 28, 4, - 0, "+", 1056, 800, 40, 128, 10, 20782080, + 0, "+", 1056, 800, 40, 128, 10, 40000000, "+", 0, 0, 0, 0, 0},/*Settings to be define*/ { "21 VESA 14 848x480 @ 60 Hz ", - 114, 500, 480, 20, 5, - 0, "+", 1056, 848, 24, 80, 10, 31680000, + 114, 517, 480, 20, 5, + 0, "+", 1088, 848, 24, 80, 10, 33750000, "-", 0, 0, 0, 0, 0},/*Settings to be define*/ { "22 VESA 16 1024x768 @ 60 Hz ", 116, 806, 768, 38, 6, 0, "-", 1344, 1024, 24, 135, 10, 65000000, "-", 0, 0, 0, 0, 0},/*Settings to be define*/ { "23 VESA 22 1280x768 @ 60 Hz ", - 122, 802, 768, 34, 4, - 0, "+", 1688, 1280, 48, 160, 10, 81250000, + 122, 790, 768, 34, 4, + 0, "+", 1440, 1280, 48, 160, 10, 68250000, "-", 0, 0, 0, 0, 0},/*Settings to be define*/ { "24 VESA 23 1280x768 @ 60 Hz ", 123, 798, 768, 30, 7, @@ -390,12 +395,12 @@ struct av8100_cea av8100_all_cea[29] = { 0, "+", 1680, 1280, 72, 128, 10, 83500000, "-", 0, 0, 0, 0, 0},/*Settings to be define*/ { "27 VESA 39 1360x768 @ 60 Hz ", - 139, 790, 768, 22, 5, - 0, "-", 1520, 1360, 48, 32, 10, 72000000, + 139, 795, 768, 22, 5, + 0, "-", 1792, 1360, 48, 32, 10, 85500000, "+", 0, 0, 0, 0, 0},/*Settings to be define*/ -{ "28 VESA 81 1360x768 @ 60 Hz ", +{ "28 VESA 81 1366x768 @ 60 Hz ", 181, 798, 768, 30, 5, - 0, "+", 1776, 1360, 72, 136, 10, 84750000, + 0, "+", 1792, 1366, 72, 136, 10, 85750000, "-", 0, 0, 0, 0, 0} /*Settings to be define*/ }; @@ -672,25 +677,36 @@ static u16 av8100_get_te_line_nb( switch (output_video_format) { case AV8100_CEA1_640X480P_59_94HZ: case AV8100_CEA2_3_720X480P_59_94HZ: + case AV8100_VESA16_1024X768P_60HZ: retval = AV8100_TE_LINE_NB_30; break; + case AV8100_CEA4_1280X720P_60HZ: + case AV8100_CEA60_1280X720P_24HZ: + case AV8100_CEA61_1280X720P_25HZ: + case AV8100_CEA62_1280X720P_30HZ: + retval = AV8100_TE_LINE_NB_21; + break; + case AV8100_CEA5_1920X1080I_60HZ: case AV8100_CEA6_7_NTSC_60HZ: case AV8100_CEA20_1920X1080I_50HZ: case AV8100_CEA21_22_576I_PAL_50HZ: + case AV8100_VESA27_1280X800P_59_91HZ: retval = AV8100_TE_LINE_NB_18; break; - case AV8100_CEA4_1280X720P_60HZ: - retval = AV8100_TE_LINE_NB_21; + case AV8100_CEA14_15_480p_60HZ: + retval = AV8100_TE_LINE_NB_32; break; case AV8100_CEA17_18_720X576P_50HZ: + case AV8100_CEA29_30_576P_50HZ: retval = AV8100_TE_LINE_NB_40; break; case AV8100_CEA19_1280X720P_50HZ: + case AV8100_VESA39_1360X768P_60_02HZ: retval = AV8100_TE_LINE_NB_22; break; @@ -700,28 +716,32 @@ static u16 av8100_get_te_line_nb( retval = AV8100_TE_LINE_NB_38; break; - case AV8100_CEA60_1280X720P_24HZ: - case AV8100_CEA62_1280X720P_30HZ: - retval = AV8100_TE_LINE_NB_21; + case AV8100_VESA9_800X600P_60_32HZ: + retval = AV8100_TE_LINE_NB_24; break; - case AV8100_CEA14_15_480p_60HZ: case AV8100_VESA14_848X480P_60HZ: - case AV8100_CEA61_1280X720P_25HZ: - case AV8100_CEA16_1920X1080P_60HZ: - case AV8100_CEA31_1920x1080P_50Hz: - case AV8100_CEA29_30_576P_50HZ: - case AV8100_VESA9_800X600P_60_32HZ: - case AV8100_VESA16_1024X768P_60HZ: + retval = AV8100_TE_LINE_NB_29; + break; + case AV8100_VESA22_1280X768P_59_99HZ: + retval = AV8100_TE_LINE_NB_17; + break; + case AV8100_VESA23_1280X768P_59_87HZ: - case AV8100_VESA27_1280X800P_59_91HZ: - case AV8100_VESA28_1280X800P_59_81HZ: - case AV8100_VESA39_1360X768P_60_02HZ: case AV8100_VESA81_1366X768P_59_79HZ: + retval = AV8100_TE_LINE_NB_25; + break; + + case AV8100_VESA28_1280X800P_59_81HZ: + retval = AV8100_TE_LINE_NB_26; + break; + + case AV8100_CEA16_1920X1080P_60HZ: + case AV8100_CEA31_1920x1080P_50Hz: default: /* TODO */ - retval = AV8100_TE_LINE_NB_14; + retval = AV8100_TE_LINE_NB_38; break; } diff --git a/drivers/video/mcde/display-av8100.c b/drivers/video/mcde/display-av8100.c index a28edbc9217..d5e1857a290 100644 --- a/drivers/video/mcde/display-av8100.c +++ b/drivers/video/mcde/display-av8100.c @@ -286,63 +286,84 @@ static int ceanr_convert(struct mcde_display_device *ddev, /* Supported HDMI modes */ static struct mcde_video_mode video_modes_supp_hdmi[] = { - /* 640_480_60_P */ + /* 0 CEA #1 640_480_60_P */ { .xres = 640, .yres = 480, .pixclock = 39682, .hbp = 112, .hfp = 48, .vbp = 33, .vfp = 12 }, - /* 720_480_60_P */ + /* 1 720_480_60_P */ { .xres = 720, .yres = 480, .pixclock = 37000, .hbp = 104, .hfp = 34, .vbp = 30, .vfp = 15 }, - /* 720_576_50_P */ + /* 2 720_576_50_P */ { .xres = 720, .yres = 576, .pixclock = 37037, .hbp = 132, .hfp = 12, .vbp = 44, .vfp = 5 }, - /* 1280_720_60_P */ + /* 3 1280_720_60_P */ { .xres = 1280, .yres = 720, .pixclock = 13468, .hbp = 256, .hfp = 114, .vbp = 20, .vfp = 10 }, - /* 1280_720_50_P */ + /* 4 1280_720_50_P */ { .xres = 1280, .yres = 720, .pixclock = 13468, .hbp = 260, .hfp = 440, .vbp = 25, .vfp = 5 }, - /* 1920_1080_30_P */ + /* 5 1280_720_30_P */ + { + .xres = 1280, .yres = 720, + .pixclock = 13468, + .hbp = 260, .hfp = 1760, + .vbp = 20, .vfp = 10 + }, + /* 6 1280_720_24_P */ + { + .xres = 1280, .yres = 720, + .pixclock = 16835, + .hbp = 260, .hfp = 1760, + .vbp = 20, .vfp = 10 + }, + /* 7 1280_720_25_P */ + { + .xres = 1280, .yres = 720, + .pixclock = 13468, + .hbp = 260, .hfp = 2420, + .vbp = 20, .vfp = 10 + }, + /* 8 1920_1080_30_P */ { .xres = 1920, .yres = 1080, .pixclock = 13468, .hbp = 189, .hfp = 91, .vbp = 36, .vfp = 9 }, - /* 1920_1080_24_P */ + /* 9 1920_1080_24_P */ { .xres = 1920, .yres = 1080, .pixclock = 13468, .hbp = 170, .hfp = 660, .vbp = 36, .vfp = 9 }, - /* 1920_1080_25_P */ + /* 10 1920_1080_25_P */ { .xres = 1920, .yres = 1080, .pixclock = 13468, .hbp = 192, .hfp = 528, .vbp = 36, .vfp = 9 }, - /* 720_480_60_I) */ + /* 11 720_480_60_I */ { .xres = 720, .yres = 480, .pixclock = 74074, @@ -350,7 +371,7 @@ static struct mcde_video_mode video_modes_supp_hdmi[] = { .vbp = 44, .vfp = 1, .interlaced = true, }, - /* 720_576_50_I) */ + /* 12 720_576_50_I */ { .xres = 720, .yres = 576, .pixclock = 74074, @@ -358,7 +379,7 @@ static struct mcde_video_mode video_modes_supp_hdmi[] = { .vbp = 44, .vfp = 5, .interlaced = true, }, - /* 1920_1080_50_I) */ + /* 13 1920_1080_50_I */ { .xres = 1920, .yres = 1080, .pixclock = 13468, @@ -366,7 +387,7 @@ static struct mcde_video_mode video_modes_supp_hdmi[] = { .vbp = 20, .vfp = 25, .interlaced = true, }, - /* 1920_1080_60_I) */ + /* 14 1920_1080_60_I */ { .xres = 1920, .yres = 1080, .pixclock = 13468, @@ -374,6 +395,78 @@ static struct mcde_video_mode video_modes_supp_hdmi[] = { .vbp = 20, .vfp = 25, .interlaced = true, }, + /* 15 VESA #9 800_600_60_P */ + { + .xres = 800, .yres = 600, + .pixclock = 25000, + .hbp = 168, .hfp = 88, + .vbp = 23, .vfp = 5, + .interlaced = false, + }, + /* 16 VESA #14 848_480_60_P */ + { + .xres = 848, .yres = 480, + .pixclock = 29630, + .hbp = 128, .hfp = 112, + .vbp = 23, .vfp = 14, + .interlaced = false, + }, + /* 17 VESA #16 1024_768_60_P */ + { + .xres = 1024, .yres = 768, + .pixclock = 15385, + .hbp = 160, .hfp = 160, + .vbp = 29, .vfp = 9, + .interlaced = false, + }, + /* 18 VESA #22 1280_768_60_P */ + { + .xres = 1280, .yres = 768, + .pixclock = 14652, + .hbp = 80, .hfp = 80, + .vbp = 12, .vfp = 10, + .interlaced = false, + }, + /* 19 VESA #23 1280_768_60_P */ + { + .xres = 1280, .yres = 768, + .pixclock = 12579, + .hbp = 192, .hfp = 192, + .vbp = 20, .vfp = 10, + .interlaced = false, + }, + /* 20 VESA #27 1280_800_60_P */ + { + .xres = 1280, .yres = 800, + .pixclock = 14085, + .hbp = 80, .hfp = 80, + .vbp = 14, .vfp = 9, + .interlaced = false, + }, + /* 21 VESA #28 1280_800_60_P */ + { + .xres = 1280, .yres = 800, + .pixclock = 11976, + .hbp = 200, .hfp = 200, + .vbp = 22, .vfp = 9, + .interlaced = false, + }, + /* 22 VESA #39 1360_768_60_P */ + { + .xres = 1360, .yres = 768, + .pixclock = 11696, + .hbp = 176, .hfp = 256, + .vbp = 18, .vfp = 9, + .interlaced = false, + }, + /* 23 VESA #81 1366_768_60_P */ + { + .xres = 1366, .yres = 768, + .pixclock = 11662, + .hbp = 213, .hfp = 213, + .vbp = 24, .vfp = 6, + .interlaced = false, + }, }; /* Supported TVout modes */ @@ -432,50 +525,115 @@ static struct cea_vesa_video_mode cea_vesa_video_mode[] = { .cea = 1, .vesa_cea_nr = 19, .video_mode = &video_modes_supp_hdmi[4], }, + /* 1280_720_30_P */ + { + .cea = 1, .vesa_cea_nr = 62, + .video_mode = &video_modes_supp_hdmi[5], + }, + /* 1280_720_24_P */ + { + .cea = 1, .vesa_cea_nr = 60, + .video_mode = &video_modes_supp_hdmi[6], + }, + /* 1280_720_25_P */ + { + .cea = 1, .vesa_cea_nr = 61, + .video_mode = &video_modes_supp_hdmi[7], + }, /* 1920_1080_30_P */ { .cea = 1, .vesa_cea_nr = 34, - .video_mode = &video_modes_supp_hdmi[5], + .video_mode = &video_modes_supp_hdmi[8], }, /* 1920_1080_24_P */ { .cea = 1, .vesa_cea_nr = 32, - .video_mode = &video_modes_supp_hdmi[6], + .video_mode = &video_modes_supp_hdmi[9], }, /* 1920_1080_25_P */ { .cea = 1, .vesa_cea_nr = 33, - .video_mode = &video_modes_supp_hdmi[7], + .video_mode = &video_modes_supp_hdmi[10], }, /* 720_480_60_I) */ { .cea = 1, .vesa_cea_nr = 6, - .video_mode = &video_modes_supp_hdmi[8], + .video_mode = &video_modes_supp_hdmi[11], }, /* 720_480_60_I) */ { .cea = 1, .vesa_cea_nr = 7, - .video_mode = &video_modes_supp_hdmi[8], + .video_mode = &video_modes_supp_hdmi[11], }, /* 720_576_50_I) */ { .cea = 1, .vesa_cea_nr = 21, - .video_mode = &video_modes_supp_hdmi[9], + .video_mode = &video_modes_supp_hdmi[12], }, /* 720_576_50_I) */ { .cea = 1, .vesa_cea_nr = 22, - .video_mode = &video_modes_supp_hdmi[9], + .video_mode = &video_modes_supp_hdmi[12], }, /* 1920_1080_50_I) */ { .cea = 1, .vesa_cea_nr = 20, - .video_mode = &video_modes_supp_hdmi[10], + .video_mode = &video_modes_supp_hdmi[13], }, /* 1920_1080_60_I) */ { .cea = 1, .vesa_cea_nr = 5, - .video_mode = &video_modes_supp_hdmi[11], + .video_mode = &video_modes_supp_hdmi[14], + }, + /* VESA #4 640_480_60_P) */ + { + .cea = 0, .vesa_cea_nr = 4, + .video_mode = &video_modes_supp_hdmi[0], + }, + /* VESA #9 800_600_60_P) */ + { + .cea = 0, .vesa_cea_nr = 9, + .video_mode = &video_modes_supp_hdmi[15], + }, + /* VESA #14 848_480_60_P) */ + { + .cea = 0, .vesa_cea_nr = 14, + .video_mode = &video_modes_supp_hdmi[16], + }, + /* VESA #16 1024_768_60_P) */ + { + .cea = 0, .vesa_cea_nr = 16, + .video_mode = &video_modes_supp_hdmi[17], + }, + /* VESA #22 1280_768_60_P) */ + { + .cea = 0, .vesa_cea_nr = 22, + .video_mode = &video_modes_supp_hdmi[18], + }, + /* VESA #23 1280_768_60_P) */ + { + .cea = 0, .vesa_cea_nr = 23, + .video_mode = &video_modes_supp_hdmi[19], + }, + /* VESA #27 1280_800_60_P) */ + { + .cea = 0, .vesa_cea_nr = 27, + .video_mode = &video_modes_supp_hdmi[20], + }, + /* VESA #28 1280_800_60_P) */ + { + .cea = 0, .vesa_cea_nr = 28, + .video_mode = &video_modes_supp_hdmi[21], + }, + /* VESA #39 1360_768_60_P) */ + { + .cea = 0, .vesa_cea_nr = 39, + .video_mode = &video_modes_supp_hdmi[22], + }, + /* VESA #81 1366_768_60_P) */ + { + .cea = 0, .vesa_cea_nr = 81, + .video_mode = &video_modes_supp_hdmi[23], }, }; |