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) |
