From: Egbert Eich <eich@xxxxxxx> This code was ported from the xorg mga driver. The doublescreen_allowed and interlace_allowed flags are set unconditionally for all models for now. Signed-off-by: Egbert Eich <eich@xxxxxxx> Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> --- drivers/gpu/drm/mgag200/mgag200_mode.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c index f4b53588e071..1b2b117a48d1 100644 --- a/drivers/gpu/drm/mgag200/mgag200_mode.c +++ b/drivers/gpu/drm/mgag200/mgag200_mode.c @@ -1624,7 +1624,9 @@ static int mga_vga_mode_valid(struct drm_connector *connector, struct drm_device *dev = connector->dev; struct mga_device *mdev = (struct mga_device*)dev->dev_private; int bpp = 32; + int lace; + lace = (mode->flags & DRM_MODE_FLAG_INTERLACE) ? 2 : 1; if (IS_G200_SE(mdev)) { if (mdev->unique_rev_id == 0x01) { if (mode->hdisplay > 1600) @@ -1676,8 +1678,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; } @@ -1737,6 +1741,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); -- 2.13.2 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel