aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2014-09-25 09:00:44 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2015-02-26 05:15:11 -0500
commit6246c8b57c1467791fd5b2d25cb5b0b9059cf856 (patch)
tree0c418e176cfb14c05643c84851e1b9b29437fd99 /drivers/video
parente566658f2efac45bae7603f56fe44e3211c7c5a8 (diff)
OMAPDSS: TFP410: fix input sync signals
TFP410 requires that DE is active high and the data and syncs are driven on rising pixel clock edge. However, at the moment the driver doesn't request such syncs, and the end result is that the sync settings depend on default values, which are not right in all cases. Set the sync values explicitly. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/fbdev/omap2/displays-new/encoder-tfp410.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/video/fbdev/omap2/displays-new/encoder-tfp410.c b/drivers/video/fbdev/omap2/displays-new/encoder-tfp410.c
index 92919a74e715..d9048b3df495 100644
--- a/drivers/video/fbdev/omap2/displays-new/encoder-tfp410.c
+++ b/drivers/video/fbdev/omap2/displays-new/encoder-tfp410.c
@@ -114,12 +114,21 @@ static void tfp410_disable(struct omap_dss_device *dssdev)
114 dssdev->state = OMAP_DSS_DISPLAY_DISABLED; 114 dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
115} 115}
116 116
117static void tfp410_fix_timings(struct omap_video_timings *timings)
118{
119 timings->data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
120 timings->sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
121 timings->de_level = OMAPDSS_SIG_ACTIVE_HIGH;
122}
123
117static void tfp410_set_timings(struct omap_dss_device *dssdev, 124static void tfp410_set_timings(struct omap_dss_device *dssdev,
118 struct omap_video_timings *timings) 125 struct omap_video_timings *timings)
119{ 126{
120 struct panel_drv_data *ddata = to_panel_data(dssdev); 127 struct panel_drv_data *ddata = to_panel_data(dssdev);
121 struct omap_dss_device *in = ddata->in; 128 struct omap_dss_device *in = ddata->in;
122 129
130 tfp410_fix_timings(timings);
131
123 ddata->timings = *timings; 132 ddata->timings = *timings;
124 dssdev->panel.timings = *timings; 133 dssdev->panel.timings = *timings;
125 134
@@ -140,6 +149,8 @@ static int tfp410_check_timings(struct omap_dss_device *dssdev,
140 struct panel_drv_data *ddata = to_panel_data(dssdev); 149 struct panel_drv_data *ddata = to_panel_data(dssdev);
141 struct omap_dss_device *in = ddata->in; 150 struct omap_dss_device *in = ddata->in;
142 151
152 tfp410_fix_timings(timings);
153
143 return in->ops.dpi->check_timings(in, timings); 154 return in->ops.dpi->check_timings(in, timings);
144} 155}
145 156