43 lines
1.6 KiB
Diff
43 lines
1.6 KiB
Diff
From 63e4f22d5fe3d4247cb48c969b5f7f2690665d78 Mon Sep 17 00:00:00 2001
|
|
From: Adel Gadllah <adel.gadllah@gmail.com>
|
|
Date: Fri, 1 May 2015 17:21:12 +0200
|
|
Subject: [PATCH] modesetting: Fix software cursor fallback
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The code in drmmode_set_cursor does not properly handle the case where
|
|
drmModeSetCursor2 returns any other error than EINVAL and silently fails to set
|
|
a cursor.
|
|
|
|
So only return when the drmModeSetCursor2 succeeds (i.e returns 0) and disable
|
|
the cursor2 usage on EINVAL.
|
|
|
|
References: https://bugzilla.redhat.com/show_bug.cgi?id=1205725
|
|
Signed-off-by: Adel Gadllah <adel.gadllah@gmail.com>
|
|
Reviewed-by: Michel Dänzer <michel@daenzer.net>
|
|
---
|
|
hw/xfree86/drivers/modesetting/drmmode_display.c | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
|
|
index 824500b..912abda 100644
|
|
--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
|
|
+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
|
|
@@ -396,10 +396,10 @@ drmmode_set_cursor(xf86CrtcPtr crtc)
|
|
drmModeSetCursor2(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
|
|
handle, ms->cursor_width, ms->cursor_height,
|
|
cursor->bits->xhot, cursor->bits->yhot);
|
|
+ if (!ret)
|
|
+ return;
|
|
if (ret == -EINVAL)
|
|
use_set_cursor2 = FALSE;
|
|
- else
|
|
- return;
|
|
}
|
|
|
|
ret = drmModeSetCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, handle,
|
|
--
|
|
2.1.0
|
|
|