Bypass interlace modes

The drm backend has problems supporting HDMI interlace mode. Bypassing
those modes while creating the mode list.
---

diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
index 5374e509..96a665ec 100644
--- a/libweston/compositor-drm.c
+++ b/libweston/compositor-drm.c
@@ -4959,6 +4959,7 @@ parse_modeline(const char *s, drmModeModeInfo *mode)
 {
 	char hsync[16];
 	char vsync[16];
+	char interlace[16] = {0};
 	float fclock;
 
 	memset(mode, 0, sizeof *mode);
@@ -4969,7 +4970,7 @@ parse_modeline(const char *s, drmModeModeInfo *mode)
 	mode->vrefresh = 0;
 	mode->flags = 0;
 
-	if (sscanf(s, "%f %hd %hd %hd %hd %hd %hd %hd %hd %15s %15s",
+	if (sscanf(s, "%f %hd %hd %hd %hd %hd %hd %hd %hd %15s %15s %15s",
 		   &fclock,
 		   &mode->hdisplay,
 		   &mode->hsync_start,
@@ -4978,9 +4979,14 @@ parse_modeline(const char *s, drmModeModeInfo *mode)
 		   &mode->vdisplay,
 		   &mode->vsync_start,
 		   &mode->vsync_end,
-		   &mode->vtotal, hsync, vsync) != 11)
+		   &mode->vtotal, hsync, vsync, interlace) < 11)
 		return -1;
 
+	if (strcasecmp(interlace, "interlace") == 0) {
+		weston_log("Interlace mode is not supported\n");
+		return -1;
+	}
+
 	mode->clock = fclock * 1000;
 	if (strcasecmp(hsync, "+hsync") == 0)
 		mode->flags |= DRM_MODE_FLAG_PHSYNC;
@@ -5163,6 +5169,10 @@ drm_output_try_add_mode(struct drm_output *output, const drmModeModeInfo *info)
 
 	assert(info);
 
+	if (info->flags & DRM_MODE_FLAG_INTERLACE) {
+		return 0;
+	}
+
 	wl_list_for_each(base, &output->base.mode_list, link) {
 		mode = to_drm_mode(base);
 		chosen = drm_mode_pick_equivalent(&mode->mode_info, info);
--
