[xorg-x11-drv-qxl/f19] add userspace patch to use new kernel hotspot interface (#974662)

Dave Airlie airlied at fedoraproject.org
Wed Jul 3 05:30:31 UTC 2013


commit 7f76b374aafdfca47089291d3de2ef896e8a8c70
Author: Dave Airlie <airlied at redhat.com>
Date:   Wed Jul 3 15:30:02 2013 +1000

    add userspace patch to use new kernel hotspot interface (#974662)

 ...l-fix-broken-cursor-hotspot-on-KMS-driver.patch |   62 ++++++++++++++++++++
 xorg-x11-drv-qxl.spec                              |    9 ++-
 2 files changed, 69 insertions(+), 2 deletions(-)
---
diff --git a/0001-qxl-fix-broken-cursor-hotspot-on-KMS-driver.patch b/0001-qxl-fix-broken-cursor-hotspot-on-KMS-driver.patch
new file mode 100644
index 0000000..803a794
--- /dev/null
+++ b/0001-qxl-fix-broken-cursor-hotspot-on-KMS-driver.patch
@@ -0,0 +1,62 @@
+From 3bbb836798b7c16c5eae693a2017244d59e92f8b Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied at redhat.com>
+Date: Wed, 3 Jul 2013 15:28:10 +1000
+Subject: [PATCH] qxl: fix broken cursor hotspot on KMS driver
+
+bugzilla: http://bugzilla.redhat.com/974662
+
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+---
+ configure.ac      |  3 ++-
+ src/qxl_drmmode.c | 14 +++++++++++++-
+ 2 files changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 8b2d450..81b7ad7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -78,7 +78,8 @@ CFLAGS="$save_CFLAGS"
+ 
+ # Checks for libraries.
+ if test "x$QXL_DRM" = xyes; then
+-	PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.42])
++	# require support for kms cursor hotspot
++	PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.46])
+ 
+ 	AC_ARG_ENABLE(kms,
+ 		      AS_HELP_STRING([--disable-kms],
+diff --git a/src/qxl_drmmode.c b/src/qxl_drmmode.c
+index 03b4124..5fe056c 100644
+--- a/src/qxl_drmmode.c
++++ b/src/qxl_drmmode.c
+@@ -43,6 +43,7 @@
+ #define DPMS_SERVER
+ #include <X11/extensions/dpms.h>
+ #endif
++#include <cursorstr.h>
+ 
+ #include "qxl.h"
+ #include "qxl_surface.h"
+@@ -271,7 +272,18 @@ drmmode_show_cursor (xf86CrtcPtr crtc)
+ 	drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
+ 	drmmode_ptr drmmode = drmmode_crtc->drmmode;
+ 	uint32_t handle = qxl_kms_bo_get_handle(drmmode_crtc->cursor_bo);
+-
++	static Bool use_set_cursor2 = TRUE;
++
++	if (use_set_cursor2) {
++		xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
++		CursorPtr cursor = xf86_config->cursor;
++		int ret;
++		ret = drmModeSetCursor2(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, handle, 64, 64, cursor->bits->xhot, cursor->bits->yhot);
++		if (ret == -ENOSYS)
++			use_set_cursor2 = FALSE;
++		else
++			return;
++	}
+ 	drmModeSetCursor(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id, handle, 64, 64);
+ }
+ 
+-- 
+1.8.3.1
+
diff --git a/xorg-x11-drv-qxl.spec b/xorg-x11-drv-qxl.spec
index 3f3e89f..666f793 100644
--- a/xorg-x11-drv-qxl.spec
+++ b/xorg-x11-drv-qxl.spec
@@ -22,7 +22,7 @@ Name:      xorg-x11-drv-qxl
 
 Version:   0.1.1
 
-Release:   0.12%{?gver}%{?dist}
+Release:   0.13%{?gver}%{?dist}
 URL:       http://www.x.org
 #Source0:   http://xorg.freedesktop.org/releases/individual/driver/%{tarball}-%{version}.tar.bz2
 
@@ -32,6 +32,7 @@ Patch1:    qxl-fix-32-bit.patch
 Patch5:    qxl-kms-disable-composite.patch
 Patch6:    0001-qxl-fix-issue-with-resizing-dev_image-improperly.patch
 Patch7:    0001-qxl-add-uevent-handler-support.patch
+Patch8:    0001-qxl-fix-broken-cursor-hotspot-on-KMS-driver.patch
 Patch20:	   0002-Add-old-driver-in-as-a-compatibility-layer.patch
 Patch21:	   0003-Link-in-the-compat-driver-various-renamings.patch
 Patch22:	   0004-compat-bump-to-new-server-API-changes.patch
@@ -44,7 +45,7 @@ ExcludeArch: s390 s390x
 BuildRequires: pkgconfig
 BuildRequires: xorg-x11-server-devel >= 1.1.0-1
 BuildRequires: spice-protocol >= 0.12.1
-BuildRequires: libdrm-devel >= 2.4.42-2
+BuildRequires: libdrm-devel >= 2.4.46-1
 
 %ifarch x86_64
 BuildRequires: spice-server-devel >= 0.8.0
@@ -78,6 +79,7 @@ XSpice is both an X and a Spice server.
 %patch5 -p1
 %patch6 -p1
 %patch7 -p1
+%patch8 -p1
 %patch20 -p1
 %patch21 -p1
 %patch22 -p1
@@ -128,6 +130,9 @@ rm -f $RPM_BUILD_ROOT%{_sysconfdir}/X11/spiceqxl.xorg.conf
 
 
 %changelog
+* Wed Jul 03 2013 Dave Airlie <airlied at redhat.com> 0.1.1-0.13
+- add userspace patch to use new kernel hotspot interface (#974662)
+
 * Wed Jul 03 2013 Dave Airlie <airlied at redhat.com> 0.1.1-0.12
 - add support for udev event catching - for dynamic resize from kernel
 


More information about the scm-commits mailing list