From mboxrd@z Thu Jan 1 00:00:00 1970 From: Egbert Eich Subject: [PATCH 16/16] drm/mgag200: Add doublescan and interlace support Date: Wed, 17 Jul 2013 15:07:29 +0200 Message-ID: <1374066449-21714-17-git-send-email-eich@suse.com> References: <1374066449-21714-1-git-send-email-eich@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.17.8]) by gabe.freedesktop.org (Postfix) with ESMTP id 09305E6768 for ; Wed, 17 Jul 2013 06:08:04 -0700 (PDT) In-Reply-To: <1374066449-21714-1-git-send-email-eich@suse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org Cc: Dave Airlie , Christopher Harvey , Mathieu Larouche , Egbert Eich List-Id: dri-devel@lists.freedesktop.org This code was ported from the xorg mga driver. Signed-off-by: Egbert Eich --- drivers/gpu/drm/mgag200/mgag200_mode.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c index 0bb0e1e..3faacbe 100644 --- a/drivers/gpu/drm/mgag200/mgag200_mode.c +++ b/drivers/gpu/drm/mgag200/mgag200_mode.c @@ -1488,6 +1488,7 @@ static int mga_vga_mode_valid(struct drm_connector *connector, struct mga_fbdev *mfbdev = mdev->mfbdev; struct drm_fb_helper *fb_helper = &mfbdev->helper; struct drm_fb_helper_connector *fb_helper_conn = NULL; + int lace = 1 + ((mode->flags & DRM_MODE_FLAG_INTERLACE) ? 1 : 0); int bpp = 32; int i = 0; @@ -1537,8 +1538,10 @@ static int mga_vga_mode_valid(struct drm_connector *connector, if (mode->crtc_hdisplay > 2048 || mode->crtc_hsync_start > 4096 || mode->crtc_hsync_end > 4096 || mode->crtc_htotal > 4096 || - mode->crtc_vdisplay > 2048 || mode->crtc_vsync_start > 4096 || - mode->crtc_vsync_end > 4096 || mode->crtc_vtotal > 4096) { + mode->crtc_vdisplay > 2048 * lace || + mode->crtc_vsync_start > 4096 * lace || + mode->crtc_vsync_end > 4096 * lace || + mode->crtc_vtotal > 4096 * lace) { return MODE_BAD; } @@ -1622,6 +1625,9 @@ static struct drm_connector *mga_vga_init(struct drm_device *dev) connector = &mga_connector->base; + connector->interlace_allowed = true; + connector->doublescan_allowed = true; + drm_connector_init(dev, connector, &mga_vga_connector_funcs, DRM_MODE_CONNECTOR_VGA); -- 1.8.1.4