summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorPer Persson <per.xb.persson@stericsson.com>2011-05-12 10:56:36 +0200
committerUlf Hansson <ulf.hansson@stericsson.com>2011-09-19 15:15:24 +0200
commit535c6f18bf19f8738c9be413f006b39400e8607c (patch)
treeeff7a8634c4537dc845f003d8cedf0145d4dd6be /drivers/video
parentd4b7a250b8ab93ac8ed792751f3c140694934672 (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.c70
-rw-r--r--drivers/video/mcde/display-av8100.c200
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],
},
};