mirror of
https://github.com/Fishwaldo/build.git
synced 2025-03-23 07:11:26 +00:00
288 lines
12 KiB
Diff
288 lines
12 KiB
Diff
diff --git a/drivers/video/sunxi/disp/de/disp_display.c b/drivers/video/sunxi/disp/de/disp_display.c
|
|
index b3f1075..9148329 100755
|
|
--- a/drivers/video/sunxi/disp/de/disp_display.c
|
|
+++ b/drivers/video/sunxi/disp/de/disp_display.c
|
|
@@ -740,6 +740,30 @@ s32 bsp_disp_get_screen_width_from_output_type(u32 screen_id, u32 output_type, u
|
|
width = 3840;
|
|
height = 2160;
|
|
break;
|
|
+ case DISP_TV_MOD_800_480P:
|
|
+ width = 800;
|
|
+ height = 480;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1024_768P:
|
|
+ width = 1024;
|
|
+ height = 768;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1280_1024P:
|
|
+ width = 1280;
|
|
+ height = 1024;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1360_768P:
|
|
+ width = 1360;
|
|
+ height = 768;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1440_900P:
|
|
+ width = 1440;
|
|
+ height = 900;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1680_1050P:
|
|
+ width = 1680;
|
|
+ height = 1050;
|
|
+ break;
|
|
default:
|
|
printk("err:function:%s, line:%d,output_mode=%d\n", __func__, __LINE__, output_mode);
|
|
}
|
|
@@ -794,6 +818,30 @@ s32 bsp_disp_get_screen_height_from_output_type(u32 screen_id, u32 output_type,
|
|
width = 3840;
|
|
height = 2160;
|
|
break;
|
|
+ case DISP_TV_MOD_800_480P:
|
|
+ width = 800;
|
|
+ height = 480;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1024_768P:
|
|
+ width = 1024;
|
|
+ height = 768;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1280_1024P:
|
|
+ width = 1280;
|
|
+ height = 1024;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1360_768P:
|
|
+ width = 1360;
|
|
+ height = 768;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1440_900P:
|
|
+ width = 1440;
|
|
+ height = 900;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1680_1050P:
|
|
+ width = 1680;
|
|
+ height = 1050;
|
|
+ break;
|
|
default:
|
|
printk("err:function:%s, line:%d,output_mode=%d\n", __func__, __LINE__, output_mode);
|
|
}
|
|
diff --git a/drivers/video/sunxi/disp2/disp/de/disp_display.c b/drivers/video/sunxi/disp2/disp/de/disp_display.c
|
|
index a390049..1af8af5 100755
|
|
--- a/drivers/video/sunxi/disp2/disp/de/disp_display.c
|
|
+++ b/drivers/video/sunxi/disp2/disp/de/disp_display.c
|
|
@@ -751,6 +751,30 @@ s32 bsp_disp_get_screen_width_from_output_type(u32 disp, u32 output_type, u32 ou
|
|
width = 3840;
|
|
height = 2160;
|
|
break;
|
|
+ case DISP_TV_MOD_800_480P:
|
|
+ width = 800;
|
|
+ height = 480;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1024_768P:
|
|
+ width = 1024;
|
|
+ height = 768;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1280_1024P:
|
|
+ width = 1280;
|
|
+ height = 1024;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1360_768P:
|
|
+ width = 1360;
|
|
+ height = 768;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1440_900P:
|
|
+ width = 1440;
|
|
+ height = 900;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1680_1050P:
|
|
+ width = 1680;
|
|
+ height = 1050;
|
|
+ break;
|
|
}
|
|
}
|
|
/* FIXME: add other output device res */
|
|
@@ -803,6 +827,30 @@ s32 bsp_disp_get_screen_height_from_output_type(u32 disp, u32 output_type, u32 o
|
|
width = 3840;
|
|
height = 2160;
|
|
break;
|
|
+ case DISP_TV_MOD_800_480P:
|
|
+ width = 800;
|
|
+ height = 480;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1024_768P:
|
|
+ width = 1024;
|
|
+ height = 768;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1280_1024P:
|
|
+ width = 1280;
|
|
+ height = 1024;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1360_768P:
|
|
+ width = 1360;
|
|
+ height = 768;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1440_900P:
|
|
+ width = 1440;
|
|
+ height = 900;
|
|
+ break;
|
|
+ case DISP_TV_MOD_1680_1050P:
|
|
+ width = 1680;
|
|
+ height = 1050;
|
|
+ break;
|
|
}
|
|
}
|
|
/* FIXME: add other output device res */
|
|
diff --git a/drivers/video/sunxi/disp2/hdmi/aw/hdmi_bsp_sun8iw7.c b/drivers/video/sunxi/disp2/hdmi/aw/hdmi_bsp_sun8iw7.c
|
|
index ddcb2b0..95b9a0f 100755
|
|
--- a/drivers/video/sunxi/disp2/hdmi/aw/hdmi_bsp_sun8iw7.c
|
|
+++ b/drivers/video/sunxi/disp2/hdmi/aw/hdmi_bsp_sun8iw7.c
|
|
@@ -46,6 +46,31 @@ static struct para_tab ptbl[] =
|
|
{{257 , 1 , 0, 96, 15, 10, 8, 2, 8, 0, 0, 0, 48, 176, 88, 112, 90, 1, 1 }},
|
|
{{258 , 1 , 0, 96, 15, 10, 8, 5, 8, 4, 0, 0, 160, 32, 88, 112, 90, 1, 1 }},
|
|
{{35 , 11 , 0, 0, 1, 3, 3, 0, 13, 0, 0, 208, 228, 80, 60, 208, 45, 0, 0 }},
|
|
+ // vic dclk int mx vst my mhbw vfp mhfp +x hbw hfp hst +y vbw h polarity v polarity
|
|
+ {{6 , 1 , 1, 1, 5, 3, 0, 1, 4, 0, 0, 160, 20, 38, 124, 240, 22, 0, 0 }},
|
|
+ {{21 , 11 , 1, 1, 5, 3, 1, 1, 2, 0, 0, 160, 32, 24, 126, 32, 24, 0, 0 }},
|
|
+ {{2 , 11 , 0, 0, 2, 6, 1, 0, 9, 0, 0, 208, 138, 16, 62, 224, 45, 0, 0 }},
|
|
+ {{17 , 11 , 0, 0, 2, 5, 2, 0, 5, 0, 0, 208, 144, 12, 64, 64, 49, 0, 0 }},
|
|
+ {{19 , 4 , 0, 96, 5, 5, 2, 2, 5, 1, 0, 0, 188, 184, 40, 208, 30, 1, 1 }},
|
|
+ {{4 , 4 , 0, 96, 5, 5, 2, 1, 5, 0, 0, 0, 114, 110, 40, 208, 30, 1, 1 }},
|
|
+ {{20 , 4 , 0, 97, 7, 5, 4, 2, 2, 2, 0, 128, 208, 16, 44, 56, 22, 1, 1 }},
|
|
+ {{5 , 4 , 0, 97, 7, 5, 4, 1, 2, 0, 0, 128, 24, 88, 44, 56, 22, 1, 1 }},
|
|
+ {{31 , 2 , 0, 96, 7, 5, 4, 2, 4, 2, 0, 128, 208, 16, 44, 56, 45, 1, 1 }},
|
|
+ {{16 , 2 , 0, 96, 7, 5, 4, 1, 4, 0, 0, 128, 24, 88, 44, 56, 45, 1, 1 }},
|
|
+ {{32 , 4 , 0, 96, 7, 5, 4, 3, 4, 2, 0, 128, 62, 126, 44, 56, 45, 1, 1 }},
|
|
+ {{33 , 4 , 0, 0, 7, 5, 4, 2, 4, 2, 0, 128, 208, 16, 44, 56, 45, 1, 1 }},
|
|
+ {{34 , 4 , 0, 0, 7, 5, 4, 1, 4, 0, 0, 128, 24, 88, 44, 56, 45, 1, 1 }},
|
|
+ {{160 , 2 , 0, 96, 7, 5, 8, 3, 4, 2, 0, 128, 62, 126, 44, 157, 45, 1, 1 }},
|
|
+ {{147 , 2 , 0, 96, 5, 5, 5, 2, 5, 1, 0, 0, 188, 184, 40, 190, 30, 1, 1 }},
|
|
+ {{132 , 2 , 0, 96, 5, 5, 5, 1, 5, 0, 0, 0, 114, 110, 40, 160, 30, 1, 1 }},
|
|
+ {{257 , 1 , 0, 96, 15, 10, 8, 2, 8, 0, 0, 0, 48, 176, 88, 112, 90, 1, 1 }},
|
|
+ {{258 , 1 , 0, 96, 15, 10, 8, 5, 8, 4, 0, 0, 160, 32, 88, 112, 90, 1, 1 }},
|
|
+ {{35 , 11 , 0, 0, 1, 3, 3, 0, 13, 0, 0, 208, 228, 80, 60, 208, 45, 0, 0 }},
|
|
+ {{36 , 4 , 0, 96, 4, 6, 3, 1, 3, 0, 0, 0, 64, 24, 136, 0, 32, 1, 1 }},
|
|
+ {{37 , 4 , 0, 96, 5, 3, 4, 1, 1, 0, 0, 0, 152, 48, 112, 0, 42, 1, 1 }},
|
|
+ {{38 , 4 , 0, 96, 5, 7, 3, 1, 3, 0, 0, 80, 176, 64, 112, 0, 32, 1, 1 }},
|
|
+ {{39 , 4 , 0, 96, 5, 9, 3, 1, 18, 0, 1, 160, 216, 32, 152, 132, 37, 1, 1 }},
|
|
+ {{40 , 2 , 0, 96, 6, 3, 4, 2, 1, 0, 0, 144, 64, 104, 184, 26, 44, 1, 1 }},
|
|
};
|
|
|
|
static unsigned char ca_table[64]=
|
|
diff --git a/drivers/video/sunxi/disp2/hdmi/aw/hdmi_core.c b/drivers/video/sunxi/disp2/hdmi/aw/hdmi_core.c
|
|
index 80580b4..5851d02 100755
|
|
--- a/drivers/video/sunxi/disp2/hdmi/aw/hdmi_core.c
|
|
+++ b/drivers/video/sunxi/disp2/hdmi/aw/hdmi_core.c
|
|
@@ -45,6 +45,11 @@ disp_video_timings video_timing[] =
|
|
{HDMI3840_2160P_30, 0,297000000, 0, 3840, 2160, 4400, 296, 176, 88, 2250, 72, 8, 10, 1, 1, 0, 0, 0},
|
|
{HDMI3840_2160P_25, 0,297000000, 0, 3840, 2160, 5280, 296, 1056, 88, 2250, 72, 8, 10, 1, 1, 0, 0, 0},
|
|
{HDMI800_480P, 0,27000000, 0, 800, 480, 1028, 88, 80, 60, 525, 29, 13, 3, 0, 0, 0, 0, 0},
|
|
+ {HDMI1024_768P, 0,65000000, 0, 1024, 768, 1344, 160, 24, 136, 806, 29, 3, 6, 0, 0, 0, 0, 0},
|
|
+ {HDMI1280_1024P, 0,108000000, 0, 1280, 1024, 1688, 248, 48, 112, 1066, 38, 1, 3, 1, 1, 0, 0, 0},
|
|
+ {HDMI1360_768P, 0,85500000, 0, 1360, 768, 1792, 256, 64, 112, 805, 17, 3, 17, 0, 0, 0, 0, 0},
|
|
+ {HDMI1440_900P, 0,108000000, 0, 1440, 900, 1848, 248, 48, 112, 942, 38, 1, 3, 1, 1, 0, 0, 0},
|
|
+ {HDMI1680_1050P, 0,147000000, 0, 1680, 1050, 2256, 288, 104, 184, 1087, 33, 1, 3, 1, 1, 0, 0, 0},
|
|
{ HDMI_EDID, },
|
|
};
|
|
|
|
diff --git a/drivers/video/sunxi/disp2/hdmi/aw/hdmi_edid.c b/drivers/video/sunxi/disp2/hdmi/aw/hdmi_edid.c
|
|
index 71ae0d3..e7437d8 100755
|
|
--- a/drivers/video/sunxi/disp2/hdmi/aw/hdmi_edid.c
|
|
+++ b/drivers/video/sunxi/disp2/hdmi/aw/hdmi_edid.c
|
|
@@ -163,6 +163,24 @@ static __s32 Parse_DTD_Block(__u8 *pbuf)
|
|
if ((sizex== 720) && (sizey == 480)) {
|
|
//Device_Support_VIC[HDMI480P] = 1;
|
|
}
|
|
+ if ((sizex== 800) && (sizey == 480)) {
|
|
+ Device_Support_VIC[HDMI800_480P] = 1;
|
|
+ }
|
|
+ if ((sizex== 1024) && (sizey == 768)) {
|
|
+ Device_Support_VIC[HDMI1024_768P] = 1;
|
|
+ }
|
|
+ if ((sizex== 1280) && (sizey == 1024)) {
|
|
+ Device_Support_VIC[HDMI1280_1024P] = 1;
|
|
+ }
|
|
+ if ((sizex== 1360) && (sizey == 768)) {
|
|
+ Device_Support_VIC[HDMI1360_768P] = 1;
|
|
+ }
|
|
+ if ((sizex== 1440) && (sizey == 900)) {
|
|
+ Device_Support_VIC[HDMI1440_900P] = 1;
|
|
+ }
|
|
+ if ((sizex== 1680) && (sizey == 1050)) {
|
|
+ Device_Support_VIC[HDMI1680_1050P] = 1;
|
|
+ }
|
|
if ((sizex== 1280) && (sizey == 720)) {
|
|
Device_Support_VIC[HDMI720P_60] = 1;
|
|
}
|
|
@@ -180,6 +198,24 @@ static __s32 Parse_DTD_Block(__u8 *pbuf)
|
|
if ((sizex== 720) && (sizey == 576)) {
|
|
Device_Support_VIC[HDMI576P] = 1;
|
|
}
|
|
+ if ((sizex== 800) && (sizey == 480)) {
|
|
+ Device_Support_VIC[HDMI800_480P] = 1;
|
|
+ }
|
|
+ if ((sizex== 1024) && (sizey == 768)) {
|
|
+ Device_Support_VIC[HDMI1024_768P] = 1;
|
|
+ }
|
|
+ if ((sizex== 1280) && (sizey == 1024)) {
|
|
+ Device_Support_VIC[HDMI1280_1024P] = 1;
|
|
+ }
|
|
+ if ((sizex== 1360) && (sizey == 768)) {
|
|
+ Device_Support_VIC[HDMI1360_768P] = 1;
|
|
+ }
|
|
+ if ((sizex== 1440) && (sizey == 900)) {
|
|
+ Device_Support_VIC[HDMI1440_900P] = 1;
|
|
+ }
|
|
+ if ((sizex== 1680) && (sizey == 1050)) {
|
|
+ Device_Support_VIC[HDMI1680_1050P] = 1;
|
|
+ }
|
|
if ((sizex== 1280) && (sizey == 720)) {
|
|
Device_Support_VIC[HDMI720P_50] = 1;
|
|
}
|
|
diff --git a/drivers/video/sunxi/disp2/hdmi/drv_hdmi.c b/drivers/video/sunxi/disp2/hdmi/drv_hdmi.c
|
|
index f0d2ae3..b510375 100755
|
|
--- a/drivers/video/sunxi/disp2/hdmi/drv_hdmi.c
|
|
+++ b/drivers/video/sunxi/disp2/hdmi/drv_hdmi.c
|
|
@@ -285,6 +285,11 @@ static struct disp_hdmi_mode hdmi_mode_tbl[] = {
|
|
{DISP_TV_MOD_3840_2160P_30HZ, HDMI3840_2160P_30, },
|
|
{DISP_TV_MOD_3840_2160P_25HZ, HDMI3840_2160P_25, },
|
|
{DISP_TV_MOD_800_480P, HDMI800_480P, },
|
|
+ {DISP_TV_MOD_1024_768P, HDMI1024_768P, },
|
|
+ {DISP_TV_MOD_1280_1024P, HDMI1280_1024P, },
|
|
+ {DISP_TV_MOD_1360_768P, HDMI1360_768P, },
|
|
+ {DISP_TV_MOD_1440_900P, HDMI1440_900P, },
|
|
+ {DISP_TV_MOD_1680_1050P, HDMI1680_1050P, },
|
|
};
|
|
|
|
__u32 Hdmi_get_vic(u32 mode)
|
|
diff --git a/drivers/video/sunxi/disp2/hdmi/hdmi_hal.h b/drivers/video/sunxi/disp2/hdmi/hdmi_hal.h
|
|
index 9074103..cf4a07f 100755
|
|
--- a/drivers/video/sunxi/disp2/hdmi/hdmi_hal.h
|
|
+++ b/drivers/video/sunxi/disp2/hdmi/hdmi_hal.h
|
|
@@ -17,6 +17,11 @@
|
|
#define HDMI1080P_25 33
|
|
#define HDMI1080P_30 34
|
|
#define HDMI800_480P 35
|
|
+#define HDMI1024_768P 36
|
|
+#define HDMI1280_1024P 37
|
|
+#define HDMI1360_768P 38
|
|
+#define HDMI1440_900P 39
|
|
+#define HDMI1680_1050P 40
|
|
#define HDMI1080P_24_3D_FP (HDMI1080P_24 +0x80)
|
|
#define HDMI720P_50_3D_FP (HDMI720P_50 +0x80)
|
|
#define HDMI720P_60_3D_FP (HDMI720P_60 +0x80)
|
|
diff --git a/include/video/sunxi_display2.h b/include/video/sunxi_display2.h
|
|
index c59aafb..98be01b 100755
|
|
--- a/include/video/sunxi_display2.h
|
|
+++ b/include/video/sunxi_display2.h
|
|
@@ -131,7 +131,12 @@ typedef enum
|
|
DISP_TV_MOD_3840_2160P_25HZ = 0x1d,
|
|
DISP_TV_MOD_3840_2160P_24HZ = 0x1e,
|
|
DISP_TV_MOD_800_480P = 0x1f,
|
|
- DISP_TV_MODE_NUM = 0x20,
|
|
+ DISP_TV_MOD_1024_768P = 0x20,
|
|
+ DISP_TV_MOD_1280_1024P = 0x21,
|
|
+ DISP_TV_MOD_1360_768P = 0x22,
|
|
+ DISP_TV_MOD_1440_900P = 0x23,
|
|
+ DISP_TV_MOD_1680_1050P = 0x24,
|
|
+ DISP_TV_MODE_NUM = 0x25,
|
|
}disp_tv_mode;
|
|
|
|
|