To avoid duplicate logic for horizonal/vertical sync_start/end helper func drm_display_mode_from_videomode is used Signed-off-by: Satendra Singh Thakur <satendra.t@xxxxxxxxxxx> Cc: Madhur Verma <madhur.verma@xxxxxxxxxxx> Cc: Hemanshu Srivastava <hemanshu.s@xxxxxxxxxxx> --- drivers/gpu/drm/sun4i/sun4i_tv.c | 67 +++++++++++++++------------------------- 1 file changed, 25 insertions(+), 42 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c index b070d52..7ffa930 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tv.c +++ b/drivers/gpu/drm/sun4i/sun4i_tv.c @@ -21,6 +21,7 @@ #include <drm/drm_crtc_helper.h> #include <drm/drm_of.h> #include <drm/drm_panel.h> +#include <video/videomode.h> #include "sun4i_crtc.h" #include "sun4i_drv.h" @@ -147,16 +148,7 @@ struct tv_mode { u16 front_porch; u16 line_number; u16 vblank_level; - - u32 hdisplay; - u16 hfront_porch; - u16 hsync_len; - u16 hback_porch; - - u32 vdisplay; - u16 vfront_porch; - u16 vsync_len; - u16 vback_porch; + struct videomode vm; bool yc_en; bool dac3_en; @@ -223,16 +215,16 @@ static const struct tv_mode tv_modes[] = { .back_porch = 118, .front_porch = 32, .line_number = 525, - - .hdisplay = 720, - .hfront_porch = 18, - .hsync_len = 2, - .hback_porch = 118, - - .vdisplay = 480, - .vfront_porch = 26, - .vsync_len = 2, - .vback_porch = 17, + .vm = { + .hactive = 720, + .hfront_porch = 18, + .hsync_len = 2, + .hback_porch = 118, + .vactive = 480, + .vfront_porch = 26, + .vsync_len = 2, + .vback_porch = 17, + }, .vblank_level = 240, @@ -249,16 +241,16 @@ static const struct tv_mode tv_modes[] = { .back_porch = 138, .front_porch = 24, .line_number = 625, - - .hdisplay = 720, - .hfront_porch = 3, - .hsync_len = 2, - .hback_porch = 139, - - .vdisplay = 576, - .vfront_porch = 28, - .vsync_len = 2, - .vback_porch = 19, + .vm = { + .hactive = 720, + .hfront_porch = 3, + .hsync_len = 2, + .hback_porch = 139, + .vactive = 576, + .vfront_porch = 28, + .vsync_len = 2, + .vback_porch = 19, + }, .vblank_level = 252, @@ -311,9 +303,9 @@ static const struct tv_mode *sun4i_tv_find_tv_by_mode(const struct drm_display_m DRM_DEBUG_DRIVER("Comparing mode %s vs %s (X: %d vs %d)", mode->name, tv_mode->name, - mode->vdisplay, tv_mode->vdisplay); + mode->vdisplay, tv_mode->vm.vactive); - if (mode->vdisplay == tv_mode->vdisplay) + if (mode->vdisplay == tv_mode->vm.vactive) return tv_mode; } @@ -325,19 +317,10 @@ static void sun4i_tv_mode_to_drm_mode(const struct tv_mode *tv_mode, { DRM_DEBUG_DRIVER("Creating mode %s\n", mode->name); + drm_display_mode_from_videomode(&tv_mode->vm, mode); mode->type = DRM_MODE_TYPE_DRIVER; mode->clock = 13500; mode->flags = DRM_MODE_FLAG_INTERLACE; - - mode->hdisplay = tv_mode->hdisplay; - mode->hsync_start = mode->hdisplay + tv_mode->hfront_porch; - mode->hsync_end = mode->hsync_start + tv_mode->hsync_len; - mode->htotal = mode->hsync_end + tv_mode->hback_porch; - - mode->vdisplay = tv_mode->vdisplay; - mode->vsync_start = mode->vdisplay + tv_mode->vfront_porch; - mode->vsync_end = mode->vsync_start + tv_mode->vsync_len; - mode->vtotal = mode->vsync_end + tv_mode->vback_porch; } static void sun4i_tv_disable(struct drm_encoder *encoder) -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel