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