diff options
Diffstat (limited to 'drivers/gpu/drm')
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 | ||
| 46 | static const struct of_device_id tvc_of_match[]; | 47 | static 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 | ||
| 43 | struct panel_drv_data { | 43 | struct 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 | ||
| 39 | struct panel_drv_data { | 38 | struct 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 | ||
| 43 | struct panel_drv_data { | 43 | struct 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 | }; |
| 284 | EXPORT_SYMBOL(omap_dss_pal_timings); | 283 | EXPORT_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 | }; |
| 305 | EXPORT_SYMBOL(omap_dss_ntsc_timings); | 303 | EXPORT_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; |
