summaryrefslogtreecommitdiffstats
path: root/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-weston1.9.0-Enabling-DRM-backend-with-multiple-displ.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-weston1.9.0-Enabling-DRM-backend-with-multiple-displ.patch')
-rw-r--r--meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-weston1.9.0-Enabling-DRM-backend-with-multiple-displ.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-weston1.9.0-Enabling-DRM-backend-with-multiple-displ.patch b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-weston1.9.0-Enabling-DRM-backend-with-multiple-displ.patch
new file mode 100644
index 000000000..3efceb5db
--- /dev/null
+++ b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0001-weston1.9.0-Enabling-DRM-backend-with-multiple-displ.patch
@@ -0,0 +1,60 @@
+From 15d9f155fdb3abffc348e81b1560702801994715 Mon Sep 17 00:00:00 2001
+From: Karthik Ramanan <a0393906@ti.com>
+Date: Mon, 11 Jan 2016 11:51:30 -0500
+Subject: [PATCH 1/2] weston1.9.0: Enabling DRM backend with multiple displays
+
+There are three main issues that this patch tries to address
+
+ 1. Black screen when running weston
+ 2. Support for multiple displays
+ 3. Handling missing VBlanks
+
+There is an issue with missing VBlanks for LCD and
+HDMI connectors which leads to display not getting refreshed.
+This patch can be considered as a workaround.
+
+Signed-off-by: Karthik Ramanan <a0393906@ti.com>
+---
+ src/compositor-drm.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/compositor-drm.c b/src/compositor-drm.c
+index 6777bf8..15ddba8 100644
+--- a/src/compositor-drm.c
++++ b/src/compositor-drm.c
+@@ -686,7 +686,7 @@ drm_output_repaint(struct weston_output *output_base,
+ .request.sequence = 1,
+ };
+
+- if ((!s->current && !s->next) ||
++ if ((!s->current && !s->next) &&
+ !drm_sprite_crtc_supported(output, s->possible_crtcs))
+ continue;
+
+@@ -847,6 +847,7 @@ page_flip_handler(int fd, unsigned int frame,
+ {
+ struct drm_output *output = (struct drm_output *) data;
+ struct timespec ts;
++ uint32_t bail;
+ uint32_t flags = PRESENTATION_FEEDBACK_KIND_VSYNC |
+ PRESENTATION_FEEDBACK_KIND_HW_COMPLETION |
+ PRESENTATION_FEEDBACK_KIND_HW_CLOCK;
+@@ -864,9 +865,14 @@ page_flip_handler(int fd, unsigned int frame,
+
+ output->page_flip_pending = 0;
+
++ if(output->vblank_pending) {
++ weston_log("VBlank is pending for connector = %d, frame = %d\n", output->connector_id, frame);
++ bail = 1;
++ }
++
+ if (output->destroy_pending)
+ drm_output_destroy(&output->base);
+- else if (!output->vblank_pending) {
++ else if (!output->vblank_pending || bail ) {
+ ts.tv_sec = sec;
+ ts.tv_nsec = usec * 1000;
+ weston_output_finish_frame(&output->base, &ts, flags);
+--
+1.9.1
+