aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c3
-rw-r--r--drivers/gpu/drm/omapdrm/displays/connector-dvi.c4
-rw-r--r--drivers/gpu/drm/omapdrm/displays/connector-hdmi.c3
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c4
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c4
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c4
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c5
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c5
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c4
-rw-r--r--drivers/gpu/drm/omapdrm/dss/dispc.c33
-rw-r--r--drivers/gpu/drm/omapdrm/dss/display.c18
-rw-r--r--drivers/gpu/drm/omapdrm/dss/dsi.c6
-rw-r--r--drivers/gpu/drm/omapdrm/dss/hdmi5_core.c4
-rw-r--r--drivers/gpu/drm/omapdrm/dss/hdmi_wp.c6
-rw-r--r--drivers/gpu/drm/omapdrm/dss/omapdss.h4
-rw-r--r--drivers/gpu/drm/omapdrm/dss/rfbi.c6
-rw-r--r--drivers/gpu/drm/omapdrm/dss/venc.c10
-rw-r--r--drivers/gpu/drm/omapdrm/omap_connector.c12
18 files changed, 52 insertions, 83 deletions
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
index 0a7491427832..264182f97194 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-analog-tv.c
@@ -40,7 +40,8 @@ static const struct omap_video_timings tvc_pal_timings = {
40 .vfront_porch = 5, 40 .vfront_porch = 5,
41 .vback_porch = 41, 41 .vback_porch = 41,
42 42
43 .flags = DISPLAY_FLAGS_INTERLACED, 43 .flags = DISPLAY_FLAGS_INTERLACED | DISPLAY_FLAGS_HSYNC_LOW |
44 DISPLAY_FLAGS_VSYNC_LOW,
44}; 45};
45 46
46static const struct of_device_id tvc_of_match[]; 47static const struct of_device_id tvc_of_match[];
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
index adbcd566a7ec..b81c366ba63a 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-dvi.c
@@ -33,11 +33,11 @@ static const struct omap_video_timings dvic_default_timings = {
33 .vsync_len = 4, 33 .vsync_len = 4,
34 .vback_porch = 7, 34 .vback_porch = 7,
35 35
36 .vsync_level = OMAPDSS_SIG_ACTIVE_HIGH,
37 .hsync_level = OMAPDSS_SIG_ACTIVE_HIGH,
38 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE, 36 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
39 .de_level = OMAPDSS_SIG_ACTIVE_HIGH, 37 .de_level = OMAPDSS_SIG_ACTIVE_HIGH,
40 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE, 38 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
39
40 .flags = DISPLAY_FLAGS_HSYNC_HIGH | DISPLAY_FLAGS_VSYNC_HIGH,
41}; 41};
42 42
43struct panel_drv_data { 43struct panel_drv_data {
diff --git a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
index 8e246b9142d7..f9809f4eb390 100644
--- a/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
+++ b/drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
@@ -32,8 +32,7 @@ static const struct omap_video_timings hdmic_default_timings = {
32 .vfront_porch = 11, 32 .vfront_porch = 11,
33 .vback_porch = 31, 33 .vback_porch = 31,
34 34
35 .vsync_level = OMAPDSS_SIG_ACTIVE_LOW, 35 .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
36 .hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
37}; 36};
38 37
39struct panel_drv_data { 38struct panel_drv_data {
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
index 9c114da37a6b..999dec6c2cff 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-lgphilips-lb035q02.c
@@ -33,11 +33,11 @@ static struct omap_video_timings lb035q02_timings = {
33 .vfront_porch = 4, 33 .vfront_porch = 4,
34 .vback_porch = 18, 34 .vback_porch = 18,
35 35
36 .vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
37 .hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
38 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE, 36 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
39 .de_level = OMAPDSS_SIG_ACTIVE_HIGH, 37 .de_level = OMAPDSS_SIG_ACTIVE_HIGH,
40 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE, 38 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
39
40 .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
41}; 41};
42 42
43struct panel_drv_data { 43struct panel_drv_data {
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
index 1e1acc6e06cb..c45eb3520346 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-nec-nl8048hl11.c
@@ -76,11 +76,11 @@ static const struct omap_video_timings nec_8048_panel_timings = {
76 .vsync_len = 1, 76 .vsync_len = 1,
77 .vback_porch = 4, 77 .vback_porch = 4,
78 78
79 .vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
80 .hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
81 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE, 79 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
82 .de_level = OMAPDSS_SIG_ACTIVE_HIGH, 80 .de_level = OMAPDSS_SIG_ACTIVE_HIGH,
83 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE, 81 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
82
83 .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
84}; 84};
85 85
86#define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev) 86#define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
index 79cb8bde1cca..a83e6a1b894b 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
@@ -49,11 +49,11 @@ static const struct omap_video_timings sharp_ls_timings = {
49 .vfront_porch = 1, 49 .vfront_porch = 1,
50 .vback_porch = 1, 50 .vback_porch = 1,
51 51
52 .vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
53 .hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
54 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE, 52 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
55 .de_level = OMAPDSS_SIG_ACTIVE_HIGH, 53 .de_level = OMAPDSS_SIG_ACTIVE_HIGH,
56 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE, 54 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
55
56 .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
57}; 57};
58 58
59#define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev) 59#define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
index 30d689818518..40c882599c96 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sony-acx565akm.c
@@ -103,12 +103,11 @@ static const struct omap_video_timings acx565akm_panel_timings = {
103 .vsync_len = 3, 103 .vsync_len = 3,
104 .vback_porch = 4, 104 .vback_porch = 4,
105 105
106 .vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
107 .hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
108
109 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE, 106 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
110 .de_level = OMAPDSS_SIG_ACTIVE_HIGH, 107 .de_level = OMAPDSS_SIG_ACTIVE_HIGH,
111 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE, 108 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
109
110 .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
112}; 111};
113 112
114#define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev) 113#define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
index a367b615d808..d98a16e8ce4a 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td028ttec1.c
@@ -53,12 +53,11 @@ static struct omap_video_timings td028ttec1_panel_timings = {
53 .vsync_len = 2, 53 .vsync_len = 2,
54 .vback_porch = 2, 54 .vback_porch = 2,
55 55
56 .vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
57 .hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
58
59 .data_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE, 56 .data_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
60 .de_level = OMAPDSS_SIG_ACTIVE_HIGH, 57 .de_level = OMAPDSS_SIG_ACTIVE_HIGH,
61 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE, 58 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
59
60 .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
62}; 61};
63 62
64#define JBT_COMMAND 0x000 63#define JBT_COMMAND 0x000
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
index 16d24381b270..65eeda51dbef 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-tpo-td043mtea1.c
@@ -86,11 +86,11 @@ static const struct omap_video_timings tpo_td043_timings = {
86 .vfront_porch = 39, 86 .vfront_porch = 39,
87 .vback_porch = 34, 87 .vback_porch = 34,
88 88
89 .vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
90 .hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
91 .data_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE, 89 .data_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
92 .de_level = OMAPDSS_SIG_ACTIVE_HIGH, 90 .de_level = OMAPDSS_SIG_ACTIVE_HIGH,
93 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE, 91 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
92
93 .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
94}; 94};
95 95
96#define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev) 96#define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c b/drivers/gpu/drm/omapdrm/dss/dispc.c
index 6a0c13d97cc1..6acdd2194122 100644
--- a/drivers/gpu/drm/omapdrm/dss/dispc.c
+++ b/drivers/gpu/drm/omapdrm/dss/dispc.c
@@ -3157,27 +3157,15 @@ static void _dispc_mgr_set_lcd_timings(enum omap_channel channel,
3157 dispc_write_reg(DISPC_TIMING_H(channel), timing_h); 3157 dispc_write_reg(DISPC_TIMING_H(channel), timing_h);
3158 dispc_write_reg(DISPC_TIMING_V(channel), timing_v); 3158 dispc_write_reg(DISPC_TIMING_V(channel), timing_v);
3159 3159
3160 switch (ovt->vsync_level) { 3160 if (ovt->flags & DISPLAY_FLAGS_VSYNC_HIGH)
3161 case OMAPDSS_SIG_ACTIVE_LOW:
3162 vs = true;
3163 break;
3164 case OMAPDSS_SIG_ACTIVE_HIGH:
3165 vs = false; 3161 vs = false;
3166 break; 3162 else
3167 default: 3163 vs = true;
3168 BUG();
3169 }
3170 3164
3171 switch (ovt->hsync_level) { 3165 if (ovt->flags & DISPLAY_FLAGS_HSYNC_HIGH)
3172 case OMAPDSS_SIG_ACTIVE_LOW:
3173 hs = true;
3174 break;
3175 case OMAPDSS_SIG_ACTIVE_HIGH:
3176 hs = false; 3166 hs = false;
3177 break; 3167 else
3178 default: 3168 hs = true;
3179 BUG();
3180 }
3181 3169
3182 switch (ovt->de_level) { 3170 switch (ovt->de_level) {
3183 case OMAPDSS_SIG_ACTIVE_LOW: 3171 case OMAPDSS_SIG_ACTIVE_LOW:
@@ -3277,8 +3265,9 @@ void dispc_mgr_set_timings(enum omap_channel channel,
3277 t.hsync_len, t.hfront_porch, t.hback_porch, 3265 t.hsync_len, t.hfront_porch, t.hback_porch,
3278 t.vsync_len, t.vfront_porch, t.vback_porch); 3266 t.vsync_len, t.vfront_porch, t.vback_porch);
3279 DSSDBG("vsync_level %d hsync_level %d data_pclk_edge %d de_level %d sync_pclk_edge %d\n", 3267 DSSDBG("vsync_level %d hsync_level %d data_pclk_edge %d de_level %d sync_pclk_edge %d\n",
3280 t.vsync_level, t.hsync_level, t.data_pclk_edge, 3268 !!(t.flags & DISPLAY_FLAGS_VSYNC_HIGH),
3281 t.de_level, t.sync_pclk_edge); 3269 !!(t.flags & DISPLAY_FLAGS_HSYNC_HIGH),
3270 t.data_pclk_edge, t.de_level, t.sync_pclk_edge);
3282 3271
3283 DSSDBG("hsync %luHz, vsync %luHz\n", ht, vt); 3272 DSSDBG("hsync %luHz, vsync %luHz\n", ht, vt);
3284 } else { 3273 } else {
@@ -4220,12 +4209,12 @@ static const struct dispc_errata_i734_data {
4220 .pixelclock = 16000000, 4209 .pixelclock = 16000000,
4221 .hsync_len = 8, .hfront_porch = 4, .hback_porch = 4, 4210 .hsync_len = 8, .hfront_porch = 4, .hback_porch = 4,
4222 .vsync_len = 1, .vfront_porch = 1, .vback_porch = 1, 4211 .vsync_len = 1, .vfront_porch = 1, .vback_porch = 1,
4223 .vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
4224 .hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
4225 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE, 4212 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
4226 .de_level = OMAPDSS_SIG_ACTIVE_HIGH, 4213 .de_level = OMAPDSS_SIG_ACTIVE_HIGH,
4227 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE, 4214 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
4228 .double_pixel = false, 4215 .double_pixel = false,
4216
4217 .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
4229 }, 4218 },
4230 .ovli = { 4219 .ovli = {
4231 .screen_width = 1, 4220 .screen_width = 1,
diff --git a/drivers/gpu/drm/omapdrm/dss/display.c b/drivers/gpu/drm/omapdrm/dss/display.c
index d63ea2d5d812..ddb5bbd41dfb 100644
--- a/drivers/gpu/drm/omapdrm/dss/display.c
+++ b/drivers/gpu/drm/omapdrm/dss/display.c
@@ -232,13 +232,8 @@ void videomode_to_omap_video_timings(const struct videomode *vm,
232 ovt->vback_porch = vm->vback_porch; 232 ovt->vback_porch = vm->vback_porch;
233 ovt->vfront_porch = vm->vfront_porch; 233 ovt->vfront_porch = vm->vfront_porch;
234 ovt->vsync_len = vm->vsync_len; 234 ovt->vsync_len = vm->vsync_len;
235 ovt->flags = vm->flags;
235 236
236 ovt->vsync_level = vm->flags & DISPLAY_FLAGS_VSYNC_HIGH ?
237 OMAPDSS_SIG_ACTIVE_HIGH :
238 OMAPDSS_SIG_ACTIVE_LOW;
239 ovt->hsync_level = vm->flags & DISPLAY_FLAGS_HSYNC_HIGH ?
240 OMAPDSS_SIG_ACTIVE_HIGH :
241 OMAPDSS_SIG_ACTIVE_LOW;
242 ovt->de_level = vm->flags & DISPLAY_FLAGS_DE_HIGH ? 237 ovt->de_level = vm->flags & DISPLAY_FLAGS_DE_HIGH ?
243 OMAPDSS_SIG_ACTIVE_HIGH : 238 OMAPDSS_SIG_ACTIVE_HIGH :
244 OMAPDSS_SIG_ACTIVE_LOW; 239 OMAPDSS_SIG_ACTIVE_LOW;
@@ -265,16 +260,7 @@ void omap_video_timings_to_videomode(const struct omap_video_timings *ovt,
265 vm->vback_porch = ovt->vback_porch; 260 vm->vback_porch = ovt->vback_porch;
266 vm->vfront_porch = ovt->vfront_porch; 261 vm->vfront_porch = ovt->vfront_porch;
267 vm->vsync_len = ovt->vsync_len; 262 vm->vsync_len = ovt->vsync_len;
268 263 vm->flags = ovt->flags;
269 if (ovt->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH)
270 vm->flags |= DISPLAY_FLAGS_HSYNC_HIGH;
271 else
272 vm->flags |= DISPLAY_FLAGS_HSYNC_LOW;
273
274 if (ovt->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH)
275 vm->flags |= DISPLAY_FLAGS_VSYNC_HIGH;
276 else
277 vm->flags |= DISPLAY_FLAGS_VSYNC_LOW;
278 264
279 if (ovt->de_level == OMAPDSS_SIG_ACTIVE_HIGH) 265 if (ovt->de_level == OMAPDSS_SIG_ACTIVE_HIGH)
280 vm->flags |= DISPLAY_FLAGS_DE_HIGH; 266 vm->flags |= DISPLAY_FLAGS_DE_HIGH;
diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
index 313c8e24ac84..fb47e82e4e98 100644
--- a/drivers/gpu/drm/omapdrm/dss/dsi.c
+++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
@@ -4123,8 +4123,10 @@ static int dsi_display_init_dispc(struct platform_device *dsidev,
4123 * omap_video_timings with default values 4123 * omap_video_timings with default values
4124 */ 4124 */
4125 dsi->timings.flags &= ~DISPLAY_FLAGS_INTERLACED; 4125 dsi->timings.flags &= ~DISPLAY_FLAGS_INTERLACED;
4126 dsi->timings.hsync_level = OMAPDSS_SIG_ACTIVE_HIGH; 4126 dsi->timings.flags &= ~DISPLAY_FLAGS_HSYNC_LOW;
4127 dsi->timings.vsync_level = OMAPDSS_SIG_ACTIVE_HIGH; 4127 dsi->timings.flags |= DISPLAY_FLAGS_HSYNC_HIGH;
4128 dsi->timings.flags &= ~DISPLAY_FLAGS_VSYNC_LOW;
4129 dsi->timings.flags |= DISPLAY_FLAGS_VSYNC_HIGH;
4128 dsi->timings.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE; 4130 dsi->timings.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
4129 dsi->timings.de_level = OMAPDSS_SIG_ACTIVE_HIGH; 4131 dsi->timings.de_level = OMAPDSS_SIG_ACTIVE_HIGH;
4130 dsi->timings.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE; 4132 dsi->timings.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE;
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi5_core.c b/drivers/gpu/drm/omapdrm/dss/hdmi5_core.c
index 62268f8d62c6..f64f389939d1 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi5_core.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi5_core.c
@@ -333,8 +333,8 @@ static void hdmi_core_video_config(struct hdmi_core_data *core,
333 unsigned char r = 0; 333 unsigned char r = 0;
334 bool vsync_pol, hsync_pol; 334 bool vsync_pol, hsync_pol;
335 335
336 vsync_pol = ovt->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH; 336 vsync_pol = !!(ovt->flags & DISPLAY_FLAGS_VSYNC_HIGH);
337 hsync_pol = ovt->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH; 337 hsync_pol = !!(ovt->flags & DISPLAY_FLAGS_HSYNC_HIGH);
338 338
339 /* Set hsync, vsync and data-enable polarity */ 339 /* Set hsync, vsync and data-enable polarity */
340 r = hdmi_read_reg(base, HDMI_CORE_FC_INVIDCONF); 340 r = hdmi_read_reg(base, HDMI_CORE_FC_INVIDCONF);
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi_wp.c b/drivers/gpu/drm/omapdrm/dss/hdmi_wp.c
index 231f62ed86ff..b86e5a357456 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi_wp.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi_wp.c
@@ -150,8 +150,8 @@ void hdmi_wp_video_config_interface(struct hdmi_wp_data *wp,
150 bool vsync_pol, hsync_pol; 150 bool vsync_pol, hsync_pol;
151 DSSDBG("Enter hdmi_wp_video_config_interface\n"); 151 DSSDBG("Enter hdmi_wp_video_config_interface\n");
152 152
153 vsync_pol = timings->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH; 153 vsync_pol = !!(timings->flags & DISPLAY_FLAGS_VSYNC_HIGH);
154 hsync_pol = timings->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH; 154 hsync_pol = !!(timings->flags & DISPLAY_FLAGS_HSYNC_HIGH);
155 155
156 r = hdmi_read_reg(wp->base, HDMI_WP_VIDEO_CFG); 156 r = hdmi_read_reg(wp->base, HDMI_WP_VIDEO_CFG);
157 r = FLD_MOD(r, vsync_pol, 7, 7); 157 r = FLD_MOD(r, vsync_pol, 7, 7);
@@ -208,8 +208,6 @@ void hdmi_wp_init_vid_fmt_timings(struct hdmi_video_format *video_fmt,
208 timings->vfront_porch = param->timings.vfront_porch; 208 timings->vfront_porch = param->timings.vfront_porch;
209 timings->vsync_len = param->timings.vsync_len; 209 timings->vsync_len = param->timings.vsync_len;
210 210
211 timings->vsync_level = param->timings.vsync_level;
212 timings->hsync_level = param->timings.hsync_level;
213 timings->double_pixel = param->timings.double_pixel; 211 timings->double_pixel = param->timings.double_pixel;
214 timings->flags = param->timings.flags; 212 timings->flags = param->timings.flags;
215 213
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h
index 23fec72bacac..23ab45447b0d 100644
--- a/drivers/gpu/drm/omapdrm/dss/omapdss.h
+++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
@@ -319,10 +319,6 @@ struct omap_video_timings {
319 /* Unit: line clocks */ 319 /* Unit: line clocks */
320 u16 vback_porch; /* Vertical back porch */ 320 u16 vback_porch; /* Vertical back porch */
321 321
322 /* Vsync logic level */
323 enum omap_dss_signal_level vsync_level;
324 /* Hsync logic level */
325 enum omap_dss_signal_level hsync_level;
326 /* Pixel clock edge to drive LCD data */ 322 /* Pixel clock edge to drive LCD data */
327 enum omap_dss_signal_edge data_pclk_edge; 323 enum omap_dss_signal_edge data_pclk_edge;
328 /* Data enable logic level */ 324 /* Data enable logic level */
diff --git a/drivers/gpu/drm/omapdrm/dss/rfbi.c b/drivers/gpu/drm/omapdrm/dss/rfbi.c
index d5639a5099c8..62f037ebfe6d 100644
--- a/drivers/gpu/drm/omapdrm/dss/rfbi.c
+++ b/drivers/gpu/drm/omapdrm/dss/rfbi.c
@@ -866,8 +866,10 @@ static void rfbi_config_lcd_manager(struct omap_dss_device *dssdev)
866 rfbi.timings.vback_porch = 0; 866 rfbi.timings.vback_porch = 0;
867 867
868 rfbi.timings.flags &= ~DISPLAY_FLAGS_INTERLACED; 868 rfbi.timings.flags &= ~DISPLAY_FLAGS_INTERLACED;
869 rfbi.timings.hsync_level = OMAPDSS_SIG_ACTIVE_HIGH; 869 rfbi.timings.flags &= ~DISPLAY_FLAGS_HSYNC_LOW;
870 rfbi.timings.vsync_level = OMAPDSS_SIG_ACTIVE_HIGH; 870 rfbi.timings.flags |= DISPLAY_FLAGS_HSYNC_HIGH;
871 rfbi.timings.flags &= ~DISPLAY_FLAGS_VSYNC_LOW;
872 rfbi.timings.flags |= DISPLAY_FLAGS_VSYNC_HIGH;
871 rfbi.timings.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE; 873 rfbi.timings.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
872 rfbi.timings.de_level = OMAPDSS_SIG_ACTIVE_HIGH; 874 rfbi.timings.de_level = OMAPDSS_SIG_ACTIVE_HIGH;
873 rfbi.timings.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE; 875 rfbi.timings.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE;
diff --git a/drivers/gpu/drm/omapdrm/dss/venc.c b/drivers/gpu/drm/omapdrm/dss/venc.c
index e271c75ef632..e80ec809f0c7 100644
--- a/drivers/gpu/drm/omapdrm/dss/venc.c
+++ b/drivers/gpu/drm/omapdrm/dss/venc.c
@@ -273,13 +273,12 @@ const struct omap_video_timings omap_dss_pal_timings = {
273 .vfront_porch = 5, 273 .vfront_porch = 5,
274 .vback_porch = 41, 274 .vback_porch = 41,
275 275
276 .hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
277 .vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
278 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE, 276 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
279 .de_level = OMAPDSS_SIG_ACTIVE_HIGH, 277 .de_level = OMAPDSS_SIG_ACTIVE_HIGH,
280 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE, 278 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
281 279
282 .flags = DISPLAY_FLAGS_INTERLACED, 280 .flags = DISPLAY_FLAGS_INTERLACED | DISPLAY_FLAGS_HSYNC_LOW |
281 DISPLAY_FLAGS_VSYNC_LOW,
283}; 282};
284EXPORT_SYMBOL(omap_dss_pal_timings); 283EXPORT_SYMBOL(omap_dss_pal_timings);
285 284
@@ -294,13 +293,12 @@ const struct omap_video_timings omap_dss_ntsc_timings = {
294 .vfront_porch = 6, 293 .vfront_porch = 6,
295 .vback_porch = 31, 294 .vback_porch = 31,
296 295
297 .hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
298 .vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
299 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE, 296 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
300 .de_level = OMAPDSS_SIG_ACTIVE_HIGH, 297 .de_level = OMAPDSS_SIG_ACTIVE_HIGH,
301 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE, 298 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
302 299
303 .flags = DISPLAY_FLAGS_INTERLACED, 300 .flags = DISPLAY_FLAGS_INTERLACED | DISPLAY_FLAGS_HSYNC_LOW |
301 DISPLAY_FLAGS_VSYNC_LOW,
304}; 302};
305EXPORT_SYMBOL(omap_dss_ntsc_timings); 303EXPORT_SYMBOL(omap_dss_ntsc_timings);
306 304
diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c
index 5effce40817f..695386256d18 100644
--- a/drivers/gpu/drm/omapdrm/omap_connector.c
+++ b/drivers/gpu/drm/omapdrm/omap_connector.c
@@ -65,12 +65,12 @@ void copy_timings_omap_to_drm(struct drm_display_mode *mode,
65 if (timings->double_pixel) 65 if (timings->double_pixel)
66 mode->flags |= DRM_MODE_FLAG_DBLCLK; 66 mode->flags |= DRM_MODE_FLAG_DBLCLK;
67 67
68 if (timings->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH) 68 if (timings->flags & DISPLAY_FLAGS_HSYNC_HIGH)
69 mode->flags |= DRM_MODE_FLAG_PHSYNC; 69 mode->flags |= DRM_MODE_FLAG_PHSYNC;
70 else 70 else
71 mode->flags |= DRM_MODE_FLAG_NHSYNC; 71 mode->flags |= DRM_MODE_FLAG_NHSYNC;
72 72
73 if (timings->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH) 73 if (timings->flags & DISPLAY_FLAGS_VSYNC_HIGH)
74 mode->flags |= DRM_MODE_FLAG_PVSYNC; 74 mode->flags |= DRM_MODE_FLAG_PVSYNC;
75 else 75 else
76 mode->flags |= DRM_MODE_FLAG_NVSYNC; 76 mode->flags |= DRM_MODE_FLAG_NVSYNC;
@@ -97,14 +97,14 @@ void copy_timings_drm_to_omap(struct omap_video_timings *timings,
97 timings->double_pixel = !!(mode->flags & DRM_MODE_FLAG_DBLCLK); 97 timings->double_pixel = !!(mode->flags & DRM_MODE_FLAG_DBLCLK);
98 98
99 if (mode->flags & DRM_MODE_FLAG_PHSYNC) 99 if (mode->flags & DRM_MODE_FLAG_PHSYNC)
100 timings->hsync_level = OMAPDSS_SIG_ACTIVE_HIGH; 100 timings->flags |= DISPLAY_FLAGS_HSYNC_HIGH;
101 else 101 else
102 timings->hsync_level = OMAPDSS_SIG_ACTIVE_LOW; 102 timings->flags |= DISPLAY_FLAGS_HSYNC_LOW;
103 103
104 if (mode->flags & DRM_MODE_FLAG_PVSYNC) 104 if (mode->flags & DRM_MODE_FLAG_PVSYNC)
105 timings->vsync_level = OMAPDSS_SIG_ACTIVE_HIGH; 105 timings->flags |= DISPLAY_FLAGS_VSYNC_HIGH;
106 else 106 else
107 timings->vsync_level = OMAPDSS_SIG_ACTIVE_LOW; 107 timings->flags |= DISPLAY_FLAGS_VSYNC_LOW;
108 108
109 timings->data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE; 109 timings->data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
110 timings->de_level = OMAPDSS_SIG_ACTIVE_HIGH; 110 timings->de_level = OMAPDSS_SIG_ACTIVE_HIGH;