diff mbox

drm/omap: add more new timings fields

Message ID 1347040786-29156-1-git-send-email-rob.clark@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Rob Clark Sept. 7, 2012, 5:59 p.m. UTC
From: Rob Clark <rob@ti.com>

Without these, DVI is broken.

Signed-off-by: Rob Clark <rob@ti.com>
---
Greg, it looks like the omapdss changes which added these fields, as
well as the interlaced field, where merged in Linux 3.5-rc5.  So I
think both this and the 'update for interlaced' patch are needed for
both 3.6 and 3.5.

 drivers/staging/omapdrm/omap_connector.c |   24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

Comments

Tomi Valkeinen Sept. 10, 2012, 5:50 a.m. UTC | #1
On Fri, 2012-09-07 at 12:59 -0500, Rob Clark wrote:
> From: Rob Clark <rob@ti.com>
> 
> Without these, DVI is broken.
> 
> Signed-off-by: Rob Clark <rob@ti.com>
> ---
> Greg, it looks like the omapdss changes which added these fields, as
> well as the interlaced field, where merged in Linux 3.5-rc5.  So I
> think both this and the 'update for interlaced' patch are needed for
> both 3.6 and 3.5.

The omapdss timing and interlace changes were merged in 3.6 merge
window, they were not merged in 3.5 merge window (and even less in
3.5-rc5)...

 Tomi
Rob Clark Sept. 10, 2012, 12:48 p.m. UTC | #2
On Mon, Sep 10, 2012 at 12:50 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> On Fri, 2012-09-07 at 12:59 -0500, Rob Clark wrote:
>> From: Rob Clark <rob@ti.com>
>>
>> Without these, DVI is broken.
>>
>> Signed-off-by: Rob Clark <rob@ti.com>
>> ---
>> Greg, it looks like the omapdss changes which added these fields, as
>> well as the interlaced field, where merged in Linux 3.5-rc5.  So I
>> think both this and the 'update for interlaced' patch are needed for
>> both 3.6 and 3.5.
>
> The omapdss timing and interlace changes were merged in 3.6 merge
> window, they were not merged in 3.5 merge window (and even less in
> 3.5-rc5)...

ok, git-log must be playing tricks on me... then these patches are
only needed for 3.6

BR,
-R

>  Tomi
>
diff mbox

Patch

diff --git a/drivers/staging/omapdrm/omap_connector.c b/drivers/staging/omapdrm/omap_connector.c
index 5f4a89b..55e9c86 100644
--- a/drivers/staging/omapdrm/omap_connector.c
+++ b/drivers/staging/omapdrm/omap_connector.c
@@ -52,6 +52,16 @@  static inline void copy_timings_omap_to_drm(struct drm_display_mode *mode,
 
 	if (timings->interlace)
 		mode->flags |= DRM_MODE_FLAG_INTERLACE;
+
+	if (timings->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH)
+		mode->flags |= DRM_MODE_FLAG_PHSYNC;
+	else
+		mode->flags |= DRM_MODE_FLAG_NHSYNC;
+
+	if (timings->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH)
+		mode->flags |= DRM_MODE_FLAG_PVSYNC;
+	else
+		mode->flags |= DRM_MODE_FLAG_NVSYNC;
 }
 
 static inline void copy_timings_drm_to_omap(struct omap_video_timings *timings,
@@ -70,6 +80,20 @@  static inline void copy_timings_drm_to_omap(struct omap_video_timings *timings,
 	timings->vbp = mode->vtotal - mode->vsync_end;
 
 	timings->interlace = !!(mode->flags & DRM_MODE_FLAG_INTERLACE);
+
+	if (mode->flags & DRM_MODE_FLAG_PHSYNC)
+		timings->hsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
+	else
+		timings->hsync_level = OMAPDSS_SIG_ACTIVE_LOW;
+
+	if (mode->flags & DRM_MODE_FLAG_PVSYNC)
+		timings->vsync_level = OMAPDSS_SIG_ACTIVE_HIGH;
+	else
+		timings->vsync_level = OMAPDSS_SIG_ACTIVE_LOW;
+
+	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;
 }
 
 static void omap_connector_dpms(struct drm_connector *connector, int mode)