From: Steffen Trumtrar <s.trumtrar@pengutronix.de> To: devicetree-discuss@lists.ozlabs.org, David Airlie <airlied@linux.ie> Cc: Steffen Trumtrar <s.trumtrar@pengutronix.de>, Rob Herring <robherring2@gmail.com>, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Thierry Reding <thierry.reding@avionic-design.de>, Guennady Liakhovetski <g.liakhovetski@gmx.de>, linux-media@vger.kernel.org, Tomi Valkeinen <tomi.valkeinen@ti.com>, Stephen Warren <swarren@wwwdotorg.org>, Florian Tobias Schandinat <FlorianSchandinat@gmx.de>, Rob Clark <robdclark@gmail.com>, Leela Krishna Amudala <leelakrishna.a@gmail.com>, "Mohammed, Afzal" <afzal@ti.com>, kernel@pengutronix.de Subject: [PATCH v16 RESEND 6/7] drm_modes: add videomode helpers Date: Mon, 21 Jan 2013 12:08:01 +0100 [thread overview] Message-ID: <1358766482-6275-7-git-send-email-s.trumtrar@pengutronix.de> (raw) In-Reply-To: <1358766482-6275-1-git-send-email-s.trumtrar@pengutronix.de> Add conversion from videomode to drm_display_mode Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de> Reviewed-by: Thierry Reding <thierry.reding@avionic-design.de> Acked-by: Thierry Reding <thierry.reding@avionic-design.de> Tested-by: Thierry Reding <thierry.reding@avionic-design.de> Tested-by: Philipp Zabel <p.zabel@pengutronix.de> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Afzal Mohammed <Afzal@ti.com> --- drivers/gpu/drm/drm_modes.c | 37 +++++++++++++++++++++++++++++++++++++ include/drm/drmP.h | 5 +++++ 2 files changed, 42 insertions(+) diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c index 59450f3..184a22d 100644 --- a/drivers/gpu/drm/drm_modes.c +++ b/drivers/gpu/drm/drm_modes.c @@ -35,6 +35,7 @@ #include <linux/export.h> #include <drm/drmP.h> #include <drm/drm_crtc.h> +#include <video/videomode.h> /** * drm_mode_debug_printmodeline - debug print a mode @@ -504,6 +505,42 @@ drm_gtf_mode(struct drm_device *dev, int hdisplay, int vdisplay, int vrefresh, } EXPORT_SYMBOL(drm_gtf_mode); +#if IS_ENABLED(CONFIG_VIDEOMODE) +int drm_display_mode_from_videomode(const struct videomode *vm, + struct drm_display_mode *dmode) +{ + dmode->hdisplay = vm->hactive; + dmode->hsync_start = dmode->hdisplay + vm->hfront_porch; + dmode->hsync_end = dmode->hsync_start + vm->hsync_len; + dmode->htotal = dmode->hsync_end + vm->hback_porch; + + dmode->vdisplay = vm->vactive; + dmode->vsync_start = dmode->vdisplay + vm->vfront_porch; + dmode->vsync_end = dmode->vsync_start + vm->vsync_len; + dmode->vtotal = dmode->vsync_end + vm->vback_porch; + + dmode->clock = vm->pixelclock / 1000; + + dmode->flags = 0; + if (vm->dmt_flags & VESA_DMT_HSYNC_HIGH) + dmode->flags |= DRM_MODE_FLAG_PHSYNC; + else if (vm->dmt_flags & VESA_DMT_HSYNC_LOW) + dmode->flags |= DRM_MODE_FLAG_NHSYNC; + if (vm->dmt_flags & VESA_DMT_VSYNC_HIGH) + dmode->flags |= DRM_MODE_FLAG_PVSYNC; + else if (vm->dmt_flags & VESA_DMT_VSYNC_LOW) + dmode->flags |= DRM_MODE_FLAG_NVSYNC; + if (vm->data_flags & DISPLAY_FLAGS_INTERLACED) + dmode->flags |= DRM_MODE_FLAG_INTERLACE; + if (vm->data_flags & DISPLAY_FLAGS_DOUBLESCAN) + dmode->flags |= DRM_MODE_FLAG_DBLSCAN; + drm_mode_set_name(dmode); + + return 0; +} +EXPORT_SYMBOL_GPL(drm_display_mode_from_videomode); +#endif + /** * drm_mode_set_name - set the name on a mode * @mode: name will be set in this mode diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 3fd8280..5fbb0fe 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -85,6 +85,8 @@ struct module; struct drm_file; struct drm_device; +struct videomode; + #include <drm/drm_os_linux.h> #include <drm/drm_hashtab.h> #include <drm/drm_mm.h> @@ -1454,6 +1456,9 @@ extern struct drm_display_mode * drm_mode_create_from_cmdline_mode(struct drm_device *dev, struct drm_cmdline_mode *cmd); +extern int drm_display_mode_from_videomode(const struct videomode *vm, + struct drm_display_mode *dmode); + /* Modesetting support */ extern void drm_vblank_pre_modeset(struct drm_device *dev, int crtc); extern void drm_vblank_post_modeset(struct drm_device *dev, int crtc); -- 1.7.10.4
WARNING: multiple messages have this Message-ID (diff)
From: Steffen Trumtrar <s.trumtrar@pengutronix.de> To: devicetree-discuss@lists.ozlabs.org, David Airlie <airlied@linux.ie> Cc: Steffen Trumtrar <s.trumtrar@pengutronix.de>, Rob Herring <robherring2@gmail.com>, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Thierry Reding <thierry.reding@avionic-design.de>, Guennady Liakhovetski <g.liakhovetski@gmx.de>, linux-media@vger.kernel.org, Tomi Valkeinen <tomi.valkeinen@ti.com>, Stephen Warren <swarren@wwwdotorg.org>, Florian Tobias Schandinat <FlorianSchandinat@gmx.de>, Rob Clark <robdclark@gmail.com>, Leela Krishna Amudala <leelakrishna.a@gmail.com>, "Mohammed, Afzal" <afzal@ti.com>, kernel@pengutronix.de Subject: [PATCH v16 RESEND 6/7] drm_modes: add videomode helpers Date: Mon, 21 Jan 2013 11:08:01 +0000 [thread overview] Message-ID: <1358766482-6275-7-git-send-email-s.trumtrar@pengutronix.de> (raw) In-Reply-To: <1358766482-6275-1-git-send-email-s.trumtrar@pengutronix.de> Add conversion from videomode to drm_display_mode Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de> Reviewed-by: Thierry Reding <thierry.reding@avionic-design.de> Acked-by: Thierry Reding <thierry.reding@avionic-design.de> Tested-by: Thierry Reding <thierry.reding@avionic-design.de> Tested-by: Philipp Zabel <p.zabel@pengutronix.de> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Afzal Mohammed <Afzal@ti.com> --- drivers/gpu/drm/drm_modes.c | 37 +++++++++++++++++++++++++++++++++++++ include/drm/drmP.h | 5 +++++ 2 files changed, 42 insertions(+) diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c index 59450f3..184a22d 100644 --- a/drivers/gpu/drm/drm_modes.c +++ b/drivers/gpu/drm/drm_modes.c @@ -35,6 +35,7 @@ #include <linux/export.h> #include <drm/drmP.h> #include <drm/drm_crtc.h> +#include <video/videomode.h> /** * drm_mode_debug_printmodeline - debug print a mode @@ -504,6 +505,42 @@ drm_gtf_mode(struct drm_device *dev, int hdisplay, int vdisplay, int vrefresh, } EXPORT_SYMBOL(drm_gtf_mode); +#if IS_ENABLED(CONFIG_VIDEOMODE) +int drm_display_mode_from_videomode(const struct videomode *vm, + struct drm_display_mode *dmode) +{ + dmode->hdisplay = vm->hactive; + dmode->hsync_start = dmode->hdisplay + vm->hfront_porch; + dmode->hsync_end = dmode->hsync_start + vm->hsync_len; + dmode->htotal = dmode->hsync_end + vm->hback_porch; + + dmode->vdisplay = vm->vactive; + dmode->vsync_start = dmode->vdisplay + vm->vfront_porch; + dmode->vsync_end = dmode->vsync_start + vm->vsync_len; + dmode->vtotal = dmode->vsync_end + vm->vback_porch; + + dmode->clock = vm->pixelclock / 1000; + + dmode->flags = 0; + if (vm->dmt_flags & VESA_DMT_HSYNC_HIGH) + dmode->flags |= DRM_MODE_FLAG_PHSYNC; + else if (vm->dmt_flags & VESA_DMT_HSYNC_LOW) + dmode->flags |= DRM_MODE_FLAG_NHSYNC; + if (vm->dmt_flags & VESA_DMT_VSYNC_HIGH) + dmode->flags |= DRM_MODE_FLAG_PVSYNC; + else if (vm->dmt_flags & VESA_DMT_VSYNC_LOW) + dmode->flags |= DRM_MODE_FLAG_NVSYNC; + if (vm->data_flags & DISPLAY_FLAGS_INTERLACED) + dmode->flags |= DRM_MODE_FLAG_INTERLACE; + if (vm->data_flags & DISPLAY_FLAGS_DOUBLESCAN) + dmode->flags |= DRM_MODE_FLAG_DBLSCAN; + drm_mode_set_name(dmode); + + return 0; +} +EXPORT_SYMBOL_GPL(drm_display_mode_from_videomode); +#endif + /** * drm_mode_set_name - set the name on a mode * @mode: name will be set in this mode diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 3fd8280..5fbb0fe 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -85,6 +85,8 @@ struct module; struct drm_file; struct drm_device; +struct videomode; + #include <drm/drm_os_linux.h> #include <drm/drm_hashtab.h> #include <drm/drm_mm.h> @@ -1454,6 +1456,9 @@ extern struct drm_display_mode * drm_mode_create_from_cmdline_mode(struct drm_device *dev, struct drm_cmdline_mode *cmd); +extern int drm_display_mode_from_videomode(const struct videomode *vm, + struct drm_display_mode *dmode); + /* Modesetting support */ extern void drm_vblank_pre_modeset(struct drm_device *dev, int crtc); extern void drm_vblank_post_modeset(struct drm_device *dev, int crtc); -- 1.7.10.4
next prev parent reply other threads:[~2013-01-21 11:08 UTC|newest] Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-01-21 11:07 [PATCH v16 RESEND 0/7] of: add display helper Steffen Trumtrar 2013-01-21 11:07 ` Steffen Trumtrar 2013-01-21 11:07 ` [PATCH v16 RESEND 1/7] viafb: rename display_timing to via_display_timing Steffen Trumtrar 2013-01-21 11:07 ` Steffen Trumtrar 2013-01-21 11:07 ` [PATCH v16 RESEND 2/7] video: add display_timing and videomode Steffen Trumtrar 2013-01-21 11:07 ` Steffen Trumtrar 2013-01-21 11:07 ` [PATCH v16 RESEND 3/7] video: add of helper for display timings/videomode Steffen Trumtrar 2013-01-21 11:07 ` =?UTF-8?q?=5BPATCH=20v16=20RESEND=203/7=5D=20video=3A=20add=20of=20helper=20for=20display=20timings/ Steffen Trumtrar 2013-01-21 11:07 ` [PATCH v16 RESEND 4/7] fbmon: add videomode helpers Steffen Trumtrar 2013-01-21 11:07 ` Steffen Trumtrar 2013-01-21 11:08 ` [PATCH v16 RESEND 5/7] fbmon: add of_videomode helpers Steffen Trumtrar 2013-01-21 11:08 ` Steffen Trumtrar 2013-01-21 11:08 ` Steffen Trumtrar [this message] 2013-01-21 11:08 ` [PATCH v16 RESEND 6/7] drm_modes: add videomode helpers Steffen Trumtrar 2013-01-21 11:08 ` [PATCH v16 RESEND 7/7] drm_modes: add of_videomode helpers Steffen Trumtrar 2013-01-21 11:08 ` Steffen Trumtrar 2013-01-22 21:50 ` [PATCH v16 RESEND 0/7] of: add display helper Rob Clark 2013-01-22 21:50 ` Rob Clark 2013-01-23 9:12 ` Steffen Trumtrar 2013-01-23 9:12 ` Steffen Trumtrar 2013-01-24 0:15 ` Dave Airlie 2013-01-24 0:15 ` Dave Airlie 2013-01-24 7:56 ` Steffen Trumtrar 2013-01-24 7:56 ` Steffen Trumtrar [not found] ` <20130123091202.GA11828-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2013-01-24 5:14 ` Leela Krishna Amudala 2013-01-24 5:26 ` Leela Krishna Amudala 2013-01-24 5:14 ` Leela Krishna Amudala 2013-01-24 8:19 ` Steffen Trumtrar 2013-01-24 8:19 ` Steffen Trumtrar 2013-01-24 8:47 ` Mohammed, Afzal 2013-01-24 8:47 ` Mohammed, Afzal 2013-01-25 8:04 ` Steffen Trumtrar 2013-01-25 8:04 ` Steffen Trumtrar 2013-02-01 7:40 ` Jingoo Han 2013-02-01 7:40 ` Jingoo Han
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1358766482-6275-7-git-send-email-s.trumtrar@pengutronix.de \ --to=s.trumtrar@pengutronix.de \ --cc=FlorianSchandinat@gmx.de \ --cc=afzal@ti.com \ --cc=airlied@linux.ie \ --cc=devicetree-discuss@lists.ozlabs.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=g.liakhovetski@gmx.de \ --cc=kernel@pengutronix.de \ --cc=laurent.pinchart@ideasonboard.com \ --cc=leelakrishna.a@gmail.com \ --cc=linux-fbdev@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=robdclark@gmail.com \ --cc=robherring2@gmail.com \ --cc=swarren@wwwdotorg.org \ --cc=thierry.reding@avionic-design.de \ --cc=tomi.valkeinen@ti.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.