diff options
author | Steve Longerbeam <slongerbeam@gmail.com> | 2014-12-18 21:00:22 -0500 |
---|---|---|
committer | Philipp Zabel <p.zabel@pengutronix.de> | 2015-01-07 13:15:02 -0500 |
commit | d490f455f4ac3d97fbf109deae1e017b26acffda (patch) | |
tree | fbc74071bf55874018edc4a704f1f79c01857b35 | |
parent | 73099f12b0d2ad583333fc3df0862a47f95ec4f4 (diff) |
drm_modes: add drm_display_mode_to_videomode
Add conversion from drm_display_mode to videomode.
Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
-rw-r--r-- | drivers/gpu/drm/drm_modes.c | 40 | ||||
-rw-r--r-- | include/drm/drm_modes.h | 2 |
2 files changed, 42 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c index 6d8b941c8200..9731aeba40a6 100644 --- a/drivers/gpu/drm/drm_modes.c +++ b/drivers/gpu/drm/drm_modes.c | |||
@@ -615,6 +615,46 @@ void drm_display_mode_from_videomode(const struct videomode *vm, | |||
615 | } | 615 | } |
616 | EXPORT_SYMBOL_GPL(drm_display_mode_from_videomode); | 616 | EXPORT_SYMBOL_GPL(drm_display_mode_from_videomode); |
617 | 617 | ||
618 | /** | ||
619 | * drm_display_mode_to_videomode - fill in @vm using @dmode, | ||
620 | * @dmode: drm_display_mode structure to use as source | ||
621 | * @vm: videomode structure to use as destination | ||
622 | * | ||
623 | * Fills out @vm using the display mode specified in @dmode. | ||
624 | */ | ||
625 | void drm_display_mode_to_videomode(const struct drm_display_mode *dmode, | ||
626 | struct videomode *vm) | ||
627 | { | ||
628 | vm->hactive = dmode->hdisplay; | ||
629 | vm->hfront_porch = dmode->hsync_start - dmode->hdisplay; | ||
630 | vm->hsync_len = dmode->hsync_end - dmode->hsync_start; | ||
631 | vm->hback_porch = dmode->htotal - dmode->hsync_end; | ||
632 | |||
633 | vm->vactive = dmode->vdisplay; | ||
634 | vm->vfront_porch = dmode->vsync_start - dmode->vdisplay; | ||
635 | vm->vsync_len = dmode->vsync_end - dmode->vsync_start; | ||
636 | vm->vback_porch = dmode->vtotal - dmode->vsync_end; | ||
637 | |||
638 | vm->pixelclock = dmode->clock * 1000; | ||
639 | |||
640 | vm->flags = 0; | ||
641 | if (dmode->flags & DRM_MODE_FLAG_PHSYNC) | ||
642 | vm->flags |= DISPLAY_FLAGS_HSYNC_HIGH; | ||
643 | else if (dmode->flags & DRM_MODE_FLAG_NHSYNC) | ||
644 | vm->flags |= DISPLAY_FLAGS_HSYNC_LOW; | ||
645 | if (dmode->flags & DRM_MODE_FLAG_PVSYNC) | ||
646 | vm->flags |= DISPLAY_FLAGS_VSYNC_HIGH; | ||
647 | else if (dmode->flags & DRM_MODE_FLAG_NVSYNC) | ||
648 | vm->flags |= DISPLAY_FLAGS_VSYNC_LOW; | ||
649 | if (dmode->flags & DRM_MODE_FLAG_INTERLACE) | ||
650 | vm->flags |= DISPLAY_FLAGS_INTERLACED; | ||
651 | if (dmode->flags & DRM_MODE_FLAG_DBLSCAN) | ||
652 | vm->flags |= DISPLAY_FLAGS_DOUBLESCAN; | ||
653 | if (dmode->flags & DRM_MODE_FLAG_DBLCLK) | ||
654 | vm->flags |= DISPLAY_FLAGS_DOUBLECLK; | ||
655 | } | ||
656 | EXPORT_SYMBOL_GPL(drm_display_mode_to_videomode); | ||
657 | |||
618 | #ifdef CONFIG_OF | 658 | #ifdef CONFIG_OF |
619 | /** | 659 | /** |
620 | * of_get_drm_display_mode - get a drm_display_mode from devicetree | 660 | * of_get_drm_display_mode - get a drm_display_mode from devicetree |
diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h index 91d0582f924e..321ae6411546 100644 --- a/include/drm/drm_modes.h +++ b/include/drm/drm_modes.h | |||
@@ -197,6 +197,8 @@ struct drm_display_mode *drm_gtf_mode_complex(struct drm_device *dev, | |||
197 | int GTF_K, int GTF_2J); | 197 | int GTF_K, int GTF_2J); |
198 | void drm_display_mode_from_videomode(const struct videomode *vm, | 198 | void drm_display_mode_from_videomode(const struct videomode *vm, |
199 | struct drm_display_mode *dmode); | 199 | struct drm_display_mode *dmode); |
200 | void drm_display_mode_to_videomode(const struct drm_display_mode *dmode, | ||
201 | struct videomode *vm); | ||
200 | int of_get_drm_display_mode(struct device_node *np, | 202 | int of_get_drm_display_mode(struct device_node *np, |
201 | struct drm_display_mode *dmode, | 203 | struct drm_display_mode *dmode, |
202 | int index); | 204 | int index); |