[Nouveau] [PATCH xf86-video-nouveau] Check for xf86CursorResetCursor()

Rhys Kidd rhyskidd at gmail.com
Sat Jan 19 20:45:36 UTC 2019


If it's available, xorg-server calls it on each mode configuration change. It
does what xf86_reload_cursors does (and more), so we don't need to call
the latter anymore.

Avoids gcc 8.2 warning:

drmmode_display.c: In function ‘drmmode_set_mode_major’:
drmmode_display.c:525:2: warning: ‘xf86_reload_cursors’ is deprecated [-Wdeprecated-declarations]
  xf86_reload_cursors(crtc->scrn->pScreen);
  ^~~~~~~~~~~~~~~~~~~
In file included from nv_type.h:10,
                 from nv_include.h:69,
                 from drmmode_display.c:36:
/usr/include/xorg/xf86Crtc.h:1068:37: note: declared here
 static _X_INLINE _X_DEPRECATED void xf86_reload_cursors(ScreenPtr screen) {}
                                     ^~~~~~~~~~~~~~~~~~~

(Ported from radeon commit d670c5c9851b4eff21c845d26c7d7e4eb5ee0fa9)

Signed-off-by: Rhys Kidd <rhyskidd at gmail.com>
---
 configure.ac          | 6 ++++++
 src/drmmode_display.c | 4 ++++
 2 files changed, 10 insertions(+)

diff --git a/configure.ac b/configure.ac
index 0b01d3e..56a971f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -127,6 +127,12 @@ AC_SUBST([DRIVER_NAME])
 XORG_MANPAGE_SECTIONS
 XORG_RELEASE_VERSION
 
+AC_CHECK_DECL(xf86CursorResetCursor,
+              [AC_DEFINE(HAVE_XF86_CURSOR_RESET_CURSOR, 1,
+              [Have xf86CursorResetCursor API])], [],
+              [#include <xorg-server.h>
+               #include <xf86Cursor.h>])
+
 AC_CHECK_HEADERS([list.h],
                  [have_list_h="yes"], [have_list_h="no"],
                  [#include <X11/Xdefs.h>
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 2480122..2ca49bd 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -522,7 +522,11 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
 	crtc->funcs->gamma_set(crtc, crtc->gamma_red, crtc->gamma_green,
 			       crtc->gamma_blue, crtc->gamma_size);
 
+#ifdef HAVE_XF86_CURSOR_RESET_CURSOR
+	xf86CursorResetCursor(crtc->scrn->pScreen);
+#else
 	xf86_reload_cursors(crtc->scrn->pScreen);
+#endif
 
 	return TRUE;
 }
-- 
2.19.1



More information about the Nouveau mailing list