Am Donnerstag, den 18.12.2014, 18:00 -0800 schrieb Steve Longerbeam:
> Add conversion from drm_display_mode to videomode.
> 
> Signed-off-by: Steve Longerbeam <steve_longerbeam at mentor.com>
> ---
>  drivers/gpu/drm/drm_modes.c |   40 ++++++++++++++++++++++++++++++++++++++++
>  include/drm/drm_modes.h     |    2 ++
>  2 files changed, 42 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
> index 6d8b941..583a391 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,
>  }
>  EXPORT_SYMBOL_GPL(drm_display_mode_from_videomode);
>  
> +/**
> + * videomode_from_drm_display_mode - fill in @vm using @dmode,
> + * @dmode: drm_display_mode structure to use as source
> + * @vm: videomode structure to use as destination
> + *
> + * Fills out @vm using the display mode specified in @dmode.
> + */
> +void videomode_from_drm_display_mode(const struct drm_display_mode *dmode,
> +                                  struct videomode *vm)
> +{
> +     vm->hactive = dmode->hdisplay;
> +     vm->hfront_porch = dmode->hsync_start - dmode->hdisplay;
> +     vm->hsync_len = dmode->hsync_end - dmode->hsync_start;
> +     vm->hback_porch = dmode->htotal - dmode->hsync_end;
> +
> +     vm->vactive = dmode->vdisplay;
> +     vm->vfront_porch = dmode->vsync_start - dmode->vdisplay;
> +     vm->vsync_len = dmode->vsync_end - dmode->vsync_start;
> +     vm->vback_porch = dmode->vtotal - dmode->vsync_end;
> +
> +     vm->pixelclock = dmode->clock * 1000;
> +
> +     vm->flags = 0;
> +     if (dmode->flags & DRM_MODE_FLAG_PHSYNC)
> +             vm->flags |= DISPLAY_FLAGS_HSYNC_HIGH;
> +     else if (dmode->flags & DRM_MODE_FLAG_NHSYNC)
> +             vm->flags |= DISPLAY_FLAGS_HSYNC_LOW;
> +     if (dmode->flags & DRM_MODE_FLAG_PVSYNC)
> +             vm->flags |= DISPLAY_FLAGS_VSYNC_HIGH;
> +     else if (dmode->flags & DRM_MODE_FLAG_NVSYNC)
> +             vm->flags |= DISPLAY_FLAGS_VSYNC_LOW;
> +     if (dmode->flags & DRM_MODE_FLAG_INTERLACE)
> +             vm->flags |= DISPLAY_FLAGS_INTERLACED;
> +     if (dmode->flags & DRM_MODE_FLAG_DBLSCAN)
> +             vm->flags |= DISPLAY_FLAGS_DOUBLESCAN;
> +     if (dmode->flags & DRM_MODE_FLAG_DBLCLK)
> +             vm->flags |= DISPLAY_FLAGS_DOUBLECLK;
> +}
> +EXPORT_SYMBOL_GPL(videomode_from_drm_display_mode);

Is it ok for drm_modes to export a function that doesn't start with
drm_ ? We could just rename this to drm_display_mode_to_videomode if
necessary. I can fix it up as I apply it, but I'd like to know which is
preferred.

regards
Philipp

Reply via email to