VIGS: workaround for qHD (540x960) video mode
authorVasiliy Ulyanov <v.ulyanov@samsung.com>
Thu, 29 Jan 2015 10:10:17 +0000 (13:10 +0300)
committerJinhyung Jo <jinhyung.jo@samsung.com>
Tue, 24 Feb 2015 07:35:20 +0000 (16:35 +0900)
Horizontal resolution was rounded up to 544 (GTF algorithm). It was
causing wrong rendering on emulator (black screen).

Change-Id: I71668858cb31f0c87231c876cdb184dc70798326
Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com>
(cherry picked from commit 799cd07680dab4018a9f2b6f32c9f927e9442b3f)

drivers/gpu/drm/vigs/vigs_output.c

index fffcb709da8289c8fa692e296e72a0d5b66a5051..77b83b14166a97c5ac943f305874e97034d6495d 100644 (file)
@@ -101,7 +101,16 @@ static int vigs_connector_get_modes(struct drm_connector *connector)
             struct drm_display_mode *preferred_mode =
                 drm_mode_create_from_cmdline_mode(drm_dev,
                                                   &cmdline_mode);
+
+            /* qHD workaround (540x960) */
+            if (cmdline_mode.xres == 540 && cmdline_mode.yres == 960) {
+                preferred_mode->hdisplay = cmdline_mode.xres;
+                preferred_mode->hsync_start = preferred_mode->hsync_start - 1;
+                preferred_mode->hsync_end = preferred_mode->hsync_end - 1;
+            }
+
             preferred_mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER;
+            drm_mode_set_crtcinfo(preferred_mode, CRTC_INTERLACE_HALVE_V);
             drm_mode_probed_add(connector, preferred_mode);
             return 1;
         }