OMAPDSS: DISPC: remove OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 2 Oct 2014 17:58:48 +0000 (17:58 +0000)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 26 Feb 2015 10:15:11 +0000 (12:15 +0200)
DISPC can drive data lines either on rising or falling pixel clock edge,
which can be configured by the user.

Sync lines can also be driven on rising or falling pixel clock edge, but
additionally the HW can be configured to drive the sync lines on
opposite clock edge from the data lines.

This opposite edge setting does not make any sense, as the same effect
can be achieved by just setting the sync lines to be driven on the other
edge compared to the data lines. It feels like some kind of backward
compatibility option, even if all DSS versions seem to have the same
implementation.

To simplify the code and configuration of the signals, and to make the
dispc timings more compatible with what is used on other platforms,
let's just remove the whole opposite-edge support.

The drivers that used OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES setting are
changed so that they use the opposite setting from the data edge.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
13 files changed:
drivers/gpu/drm/omapdrm/omap_connector.c
drivers/video/fbdev/omap2/displays-new/connector-dvi.c
drivers/video/fbdev/omap2/displays-new/panel-lgphilips-lb035q02.c
drivers/video/fbdev/omap2/displays-new/panel-sharp-ls037v7dw01.c
drivers/video/fbdev/omap2/displays-new/panel-sony-acx565akm.c
drivers/video/fbdev/omap2/displays-new/panel-tpo-td028ttec1.c
drivers/video/fbdev/omap2/displays-new/panel-tpo-td043mtea1.c
drivers/video/fbdev/omap2/dss/dispc.c
drivers/video/fbdev/omap2/dss/display.c
drivers/video/fbdev/omap2/dss/dsi.c
drivers/video/fbdev/omap2/dss/rfbi.c
drivers/video/fbdev/omap2/omapfb/omapfb-main.c
include/video/omapdss.h

index a94b11f7859d807b7fff43ef6f5efc106a4a9997..2c2173bc3f0085e9265c25897b02ee1a5f31b1cb 100644 (file)
@@ -102,7 +102,7 @@ void copy_timings_drm_to_omap(struct omap_video_timings *timings,
 
        timings->data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
        timings->de_level = OMAPDSS_SIG_ACTIVE_HIGH;
-       timings->sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES;
+       timings->sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE;
 }
 
 static enum drm_connector_status omap_connector_detect(
index 0cdc97413020df12489e998eda347eb2e9864694..a8ce920fa797d335d2dbfbbc1c9d8f93a4378959 100644 (file)
@@ -37,7 +37,7 @@ static const struct omap_video_timings dvic_default_timings = {
        .hsync_level    = OMAPDSS_SIG_ACTIVE_HIGH,
        .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
        .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
-       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
+       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 };
 
 struct panel_drv_data {
index 27d4fcfa1824313a7e3799f37b8c7a0deb6c89e7..9974a37a11af9455a508ffd9b7010296bc465275 100644 (file)
@@ -37,7 +37,7 @@ static struct omap_video_timings lb035q02_timings = {
        .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
        .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
        .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
-       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
+       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 };
 
 struct panel_drv_data {
index 18b19b6e1ac2c238db4b0e04177d26b476e001ba..eae263702964a7e78f22f922acc4b0b451e6b8ec 100644 (file)
@@ -54,7 +54,7 @@ static const struct omap_video_timings sharp_ls_timings = {
        .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
        .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
        .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
-       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
+       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 };
 
 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
index 337ccc5c0f5eca846b62ba43b053d0f40f1cf335..90cbc4c3406c719909f3495cb97533face292d3c 100644 (file)
@@ -108,7 +108,7 @@ static const struct omap_video_timings acx565akm_panel_timings = {
 
        .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
        .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
-       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
+       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 };
 
 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
index fbba0b8ca8718abcb08f7bc8b03e4947e93dc9ba..9edc51133c59c112088df6325164d3e958804fe2 100644 (file)
@@ -58,7 +58,7 @@ static struct omap_video_timings td028ttec1_panel_timings = {
 
        .data_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
        .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
-       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
+       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
 };
 
 #define JBT_COMMAND    0x000
index 5aba76bca25a03bfab66dcfe24c485fcf07982fd..79e4a029aab90658ef52f4921345a18c50005b7b 100644 (file)
@@ -91,7 +91,7 @@ static const struct omap_video_timings tpo_td043_timings = {
        .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
        .data_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
        .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
-       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
+       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
 };
 
 #define to_panel_data(p) container_of(p, struct panel_drv_data, dssdev)
index a19a1d4b2d1962d72ea295942084cbe8eda73835..11bd780fcdfa7cf876e91d3ee26cd117fe6247d8 100644 (file)
@@ -2934,22 +2934,18 @@ static void _dispc_mgr_set_lcd_timings(enum omap_channel channel, int hsw,
        case OMAPDSS_DRIVE_SIG_FALLING_EDGE:
                ipc = true;
                break;
-       case OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES:
        default:
                BUG();
        }
 
+       /* always use the 'rf' setting */
+       onoff = true;
+
        switch (sync_pclk_edge) {
-       case OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES:
-               onoff = false;
-               rf = false;
-               break;
        case OMAPDSS_DRIVE_SIG_FALLING_EDGE:
-               onoff = true;
                rf = false;
                break;
        case OMAPDSS_DRIVE_SIG_RISING_EDGE:
-               onoff = true;
                rf = true;
                break;
        default:
index 2412a0dd0c1312baa732296e895d5d9f1a63eea6..a6fd2d35ad60eb1c613fd7d4be670836b3ca4bc7 100644 (file)
@@ -295,7 +295,9 @@ void videomode_to_omap_video_timings(const struct videomode *vm,
                OMAPDSS_DRIVE_SIG_RISING_EDGE :
                OMAPDSS_DRIVE_SIG_FALLING_EDGE;
 
-       ovt->sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES;
+       ovt->sync_pclk_edge = vm->flags & DISPLAY_FLAGS_PIXDATA_POSEDGE ?
+               OMAPDSS_DRIVE_SIG_FALLING_EDGE :
+               OMAPDSS_DRIVE_SIG_RISING_EDGE;
 }
 EXPORT_SYMBOL(videomode_to_omap_video_timings);
 
index 5081f6fb1737ee02ab29cdbfd32fd150e6844300..28b0bc11669d59d42c16a7e51d731af87dc7a2f3 100644 (file)
@@ -4137,7 +4137,7 @@ static int dsi_display_init_dispc(struct platform_device *dsidev,
        dsi->timings.vsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
        dsi->timings.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
        dsi->timings.de_level = OMAPDSS_SIG_ACTIVE_HIGH;
-       dsi->timings.sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES;
+       dsi->timings.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE;
 
        dss_mgr_set_timings(mgr, &dsi->timings);
 
index 28e694b11ff9810b7280298bf822643259bb87bc..065effca9236b2845658b8ed007143fc4f1b2367 100644 (file)
@@ -869,7 +869,7 @@ static void rfbi_config_lcd_manager(struct omap_dss_device *dssdev)
        rfbi.timings.vsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
        rfbi.timings.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
        rfbi.timings.de_level = OMAPDSS_SIG_ACTIVE_HIGH;
-       rfbi.timings.sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES;
+       rfbi.timings.sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE;
 
        dss_mgr_set_timings(mgr, &rfbi.timings);
 }
index 22f07f88bc40828a51606e3b248cf020f55a0fce..4f0cbb54d4dbdf1d43eb013d8fbdcc6cb3813389 100644 (file)
@@ -2073,7 +2073,7 @@ static int omapfb_mode_to_timings(const char *mode_str,
        } else {
                timings->data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
                timings->de_level = OMAPDSS_SIG_ACTIVE_HIGH;
-               timings->sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES;
+               timings->sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE;
        }
 
        timings->pixelclock = PICOS2KHZ(var->pixclock) * 1000;
@@ -2223,7 +2223,7 @@ static void fb_videomode_to_omap_timings(struct fb_videomode *m,
        } else {
                t->data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
                t->de_level = OMAPDSS_SIG_ACTIVE_HIGH;
-               t->sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES;
+               t->sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE;
        }
 
        t->x_res = m->xres;
index 60de61fea8e364069969faa9bc08a7f9e19c4433..7414e4a9750812f47caae2182d3f653db564ae3f 100644 (file)
@@ -134,7 +134,6 @@ enum omap_dss_signal_level {
 };
 
 enum omap_dss_signal_edge {
-       OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
        OMAPDSS_DRIVE_SIG_RISING_EDGE,
        OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 };
This page took 0.043677 seconds and 5 git commands to generate.