diff options
author | Rob Clark <rob@ti.com> | 2012-09-07 13:59:45 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-09-10 19:04:21 -0400 |
commit | 94254edc9c5b4e864767c97bfa0e4ccff2ecb5e5 (patch) | |
tree | b2b0f3b64b37b1456ebb87210c1728c7e3463228 | |
parent | 0b0d7b62bed81a76dd2b3f12ba6a33eb144a1df6 (diff) |
drm/omap: add more new timings fields
Without these, DVI is broken.
Signed-off-by: Rob Clark <rob@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/omapdrm/omap_connector.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/staging/omapdrm/omap_connector.c b/drivers/staging/omapdrm/omap_connector.c index 5f4a89be3dda..55e9c8655850 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, | |||
52 | 52 | ||
53 | if (timings->interlace) | 53 | if (timings->interlace) |
54 | mode->flags |= DRM_MODE_FLAG_INTERLACE; | 54 | mode->flags |= DRM_MODE_FLAG_INTERLACE; |
55 | |||
56 | if (timings->hsync_level == OMAPDSS_SIG_ACTIVE_HIGH) | ||
57 | mode->flags |= DRM_MODE_FLAG_PHSYNC; | ||
58 | else | ||
59 | mode->flags |= DRM_MODE_FLAG_NHSYNC; | ||
60 | |||
61 | if (timings->vsync_level == OMAPDSS_SIG_ACTIVE_HIGH) | ||
62 | mode->flags |= DRM_MODE_FLAG_PVSYNC; | ||
63 | else | ||
64 | mode->flags |= DRM_MODE_FLAG_NVSYNC; | ||
55 | } | 65 | } |
56 | 66 | ||
57 | static inline void copy_timings_drm_to_omap(struct omap_video_timings *timings, | 67 | 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, | |||
70 | timings->vbp = mode->vtotal - mode->vsync_end; | 80 | timings->vbp = mode->vtotal - mode->vsync_end; |
71 | 81 | ||
72 | timings->interlace = !!(mode->flags & DRM_MODE_FLAG_INTERLACE); | 82 | timings->interlace = !!(mode->flags & DRM_MODE_FLAG_INTERLACE); |
83 | |||
84 | if (mode->flags & DRM_MODE_FLAG_PHSYNC) | ||
85 | timings->hsync_level = OMAPDSS_SIG_ACTIVE_HIGH; | ||
86 | else | ||
87 | timings->hsync_level = OMAPDSS_SIG_ACTIVE_LOW; | ||
88 | |||
89 | if (mode->flags & DRM_MODE_FLAG_PVSYNC) | ||
90 | timings->vsync_level = OMAPDSS_SIG_ACTIVE_HIGH; | ||
91 | else | ||
92 | timings->vsync_level = OMAPDSS_SIG_ACTIVE_LOW; | ||
93 | |||
94 | timings->data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE; | ||
95 | timings->de_level = OMAPDSS_SIG_ACTIVE_HIGH; | ||
96 | timings->sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES; | ||
73 | } | 97 | } |
74 | 98 | ||
75 | static void omap_connector_dpms(struct drm_connector *connector, int mode) | 99 | static void omap_connector_dpms(struct drm_connector *connector, int mode) |