Hello community,

here is the log from the commit of package libdrm for openSUSE:Factory checked 
in at 2017-06-02 10:31:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libdrm (Old)
 and      /work/SRC/openSUSE:Factory/.libdrm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libdrm"

Fri Jun  2 10:31:05 2017 rev:125 rq:498488 version:2.4.81

Changes:
--------
--- /work/SRC/openSUSE:Factory/libdrm/libdrm.changes    2017-04-18 
13:48:12.873015326 +0200
+++ /work/SRC/openSUSE:Factory/.libdrm.new/libdrm.changes       2017-06-02 
10:31:08.854426897 +0200
@@ -1,0 +2,20 @@
+Fri May 26 14:11:03 UTC 2017 - sndir...@suse.com
+
+- Update to version 2.4.81
+  * Export drmDevicesEqual
+  * configure: Fix the <sys/sysmacros.h> check
+  * Fix stray caller of drmCompareDevices
+  * amdgpu/: concisely && consistently check null ptrs in canonical form
+  * amdgpu: Use the canonical form in branch predicate
+  * Add pl111 as a KMS driver for utils.
+  * Add the DPI encoder/connector types to KMS utils.
+  * amdgpu: add raven family id
+  * modetest: fix printing of fourcc on BE machines
+  * amdgpu/drm: add AMDGPU_HW_IP_VCN_DEC
+  * amdgpu/drm: add AMDGPU_HW_IP_VCN_ENC
+  * amdgpu: add the interface of waiting multiple fences
+  * amdgpu: add a test for amdgpu_cs_wait_fences
+  * amdgpu: add missing extern "C" headers
+  * freedreno: fix double-free on exit
+
+-------------------------------------------------------------------

Old:
----
  libdrm-2.4.80.tar.bz2

New:
----
  libdrm-2.4.81.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libdrm.spec ++++++
--- /var/tmp/diff_new_pack.g7t2M4/_old  2017-06-02 10:31:09.514333654 +0200
+++ /var/tmp/diff_new_pack.g7t2M4/_new  2017-06-02 10:31:09.518333089 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           libdrm
-Version:        2.4.80
+Version:        2.4.81
 Release:        0
 Summary:        Userspace Interface for Kernel DRM Services
 License:        MIT

++++++ libdrm-2.4.80.tar.bz2 -> libdrm-2.4.81.tar.bz2 ++++++
++++ 3240 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/amdgpu/amdgpu-symbol-check 
new/libdrm-2.4.81/amdgpu/amdgpu-symbol-check
--- old/libdrm-2.4.80/amdgpu/amdgpu-symbol-check        2017-04-15 
01:29:46.000000000 +0200
+++ new/libdrm-2.4.81/amdgpu/amdgpu-symbol-check        2017-05-24 
17:03:41.000000000 +0200
@@ -33,6 +33,7 @@
 amdgpu_cs_query_reset_state
 amdgpu_cs_signal_semaphore
 amdgpu_cs_submit
+amdgpu_cs_wait_fences
 amdgpu_cs_wait_semaphore
 amdgpu_device_deinitialize
 amdgpu_device_initialize
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/amdgpu/amdgpu.h new/libdrm-2.4.81/amdgpu/amdgpu.h
--- old/libdrm-2.4.80/amdgpu/amdgpu.h   2017-04-15 01:29:46.000000000 +0200
+++ new/libdrm-2.4.81/amdgpu/amdgpu.h   2017-05-24 17:03:41.000000000 +0200
@@ -37,6 +37,10 @@
 #include <stdint.h>
 #include <stdbool.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct drm_amdgpu_info_hw_ip;
 
 /*--------------------------------------------------------------------------*/
@@ -907,6 +911,29 @@
                                 uint64_t flags,
                                 uint32_t *expired);
 
+/**
+ *  Wait for multiple fences
+ *
+ * \param   fences      - \c [in] The fence array to wait
+ * \param   fence_count - \c [in] The fence count
+ * \param   wait_all    - \c [in] If true, wait all fences to be signaled,
+ *                                otherwise, wait at least one fence
+ * \param   timeout_ns  - \c [in] The timeout to wait, in nanoseconds
+ * \param   status      - \c [out] '1' for signaled, '0' for timeout
+ * \param   first       - \c [out] the index of the first signaled fence from 
@fences
+ *
+ * \return  0 on success
+ *          <0 - Negative POSIX Error code
+ *
+ * \note    Currently it supports only one amdgpu_device. All fences come from
+ *          the same amdgpu_device with the same fd.
+*/
+int amdgpu_cs_wait_fences(struct amdgpu_cs_fence *fences,
+                         uint32_t fence_count,
+                         bool wait_all,
+                         uint64_t timeout_ns,
+                         uint32_t *status, uint32_t *first);
+
 /*
  * Query / Info API
  *
@@ -1301,4 +1328,8 @@
 */
 const char *amdgpu_get_marketing_name(amdgpu_device_handle dev);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* #ifdef _AMDGPU_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/amdgpu/amdgpu_bo.c new/libdrm-2.4.81/amdgpu/amdgpu_bo.c
--- old/libdrm-2.4.80/amdgpu/amdgpu_bo.c        2017-04-15 01:29:46.000000000 
+0200
+++ new/libdrm-2.4.81/amdgpu/amdgpu_bo.c        2017-05-24 17:03:41.000000000 
+0200
@@ -652,7 +652,7 @@
                return -EINVAL;
 
        list = malloc(number_of_resources * sizeof(struct 
drm_amdgpu_bo_list_entry));
-       if (list == NULL)
+       if (!list)
                return -ENOMEM;
 
        args.in.operation = AMDGPU_BO_LIST_OP_UPDATE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/amdgpu/amdgpu_cs.c new/libdrm-2.4.81/amdgpu/amdgpu_cs.c
--- old/libdrm-2.4.80/amdgpu/amdgpu_cs.c        2017-04-15 01:29:46.000000000 
+0200
+++ new/libdrm-2.4.81/amdgpu/amdgpu_cs.c        2017-05-24 17:03:41.000000000 
+0200
@@ -59,13 +59,11 @@
        int i, j, k;
        int r;
 
-       if (NULL == dev)
-               return -EINVAL;
-       if (NULL == context)
+       if (!dev || !context)
                return -EINVAL;
 
        gpu_context = calloc(1, sizeof(struct amdgpu_context));
-       if (NULL == gpu_context)
+       if (!gpu_context)
                return -ENOMEM;
 
        gpu_context->dev = dev;
@@ -110,7 +108,7 @@
        int i, j, k;
        int r;
 
-       if (NULL == context)
+       if (!context)
                return -EINVAL;
 
        pthread_mutex_destroy(&context->sequence_mutex);
@@ -330,9 +328,7 @@
        uint32_t i;
        int r;
 
-       if (NULL == context)
-               return -EINVAL;
-       if (NULL == ibs_request)
+       if (!context || !ibs_request)
                return -EINVAL;
 
        r = 0;
@@ -416,11 +412,7 @@
        bool busy = true;
        int r;
 
-       if (NULL == fence)
-               return -EINVAL;
-       if (NULL == expired)
-               return -EINVAL;
-       if (NULL == fence->context)
+       if (!fence || !expired || !fence->context)
                return -EINVAL;
        if (fence->ip_type >= AMDGPU_HW_IP_NUM)
                return -EINVAL;
@@ -443,15 +435,83 @@
        return r;
 }
 
+static int amdgpu_ioctl_wait_fences(struct amdgpu_cs_fence *fences,
+                                   uint32_t fence_count,
+                                   bool wait_all,
+                                   uint64_t timeout_ns,
+                                   uint32_t *status,
+                                   uint32_t *first)
+{
+       struct drm_amdgpu_fence *drm_fences;
+       amdgpu_device_handle dev = fences[0].context->dev;
+       union drm_amdgpu_wait_fences args;
+       int r;
+       uint32_t i;
+
+       drm_fences = alloca(sizeof(struct drm_amdgpu_fence) * fence_count);
+       for (i = 0; i < fence_count; i++) {
+               drm_fences[i].ctx_id = fences[i].context->id;
+               drm_fences[i].ip_type = fences[i].ip_type;
+               drm_fences[i].ip_instance = fences[i].ip_instance;
+               drm_fences[i].ring = fences[i].ring;
+               drm_fences[i].seq_no = fences[i].fence;
+       }
+
+       memset(&args, 0, sizeof(args));
+       args.in.fences = (uint64_t)(uintptr_t)drm_fences;
+       args.in.fence_count = fence_count;
+       args.in.wait_all = wait_all;
+       args.in.timeout_ns = amdgpu_cs_calculate_timeout(timeout_ns);
+
+       r = drmIoctl(dev->fd, DRM_IOCTL_AMDGPU_WAIT_FENCES, &args);
+       if (r)
+               return -errno;
+
+       *status = args.out.status;
+
+       if (first)
+               *first = args.out.first_signaled;
+
+       return 0;
+}
+
+int amdgpu_cs_wait_fences(struct amdgpu_cs_fence *fences,
+                         uint32_t fence_count,
+                         bool wait_all,
+                         uint64_t timeout_ns,
+                         uint32_t *status,
+                         uint32_t *first)
+{
+       uint32_t i;
+
+       /* Sanity check */
+       if (!fences || !status || !fence_count)
+               return -EINVAL;
+
+       for (i = 0; i < fence_count; i++) {
+               if (NULL == fences[i].context)
+                       return -EINVAL;
+               if (fences[i].ip_type >= AMDGPU_HW_IP_NUM)
+                       return -EINVAL;
+               if (fences[i].ring >= AMDGPU_CS_MAX_RINGS)
+                       return -EINVAL;
+       }
+
+       *status = 0;
+
+       return amdgpu_ioctl_wait_fences(fences, fence_count, wait_all,
+                                       timeout_ns, status, first);
+}
+
 int amdgpu_cs_create_semaphore(amdgpu_semaphore_handle *sem)
 {
        struct amdgpu_semaphore *gpu_semaphore;
 
-       if (NULL == sem)
+       if (!sem)
                return -EINVAL;
 
        gpu_semaphore = calloc(1, sizeof(struct amdgpu_semaphore));
-       if (NULL == gpu_semaphore)
+       if (!gpu_semaphore)
                return -ENOMEM;
 
        atomic_set(&gpu_semaphore->refcount, 1);
@@ -466,14 +526,12 @@
                               uint32_t ring,
                               amdgpu_semaphore_handle sem)
 {
-       if (NULL == ctx)
+       if (!ctx || !sem)
                return -EINVAL;
        if (ip_type >= AMDGPU_HW_IP_NUM)
                return -EINVAL;
        if (ring >= AMDGPU_CS_MAX_RINGS)
                return -EINVAL;
-       if (NULL == sem)
-               return -EINVAL;
        /* sem has been signaled */
        if (sem->signal_fence.context)
                return -EINVAL;
@@ -494,16 +552,14 @@
                             uint32_t ring,
                             amdgpu_semaphore_handle sem)
 {
-       if (NULL == ctx)
+       if (!ctx || !sem)
                return -EINVAL;
        if (ip_type >= AMDGPU_HW_IP_NUM)
                return -EINVAL;
        if (ring >= AMDGPU_CS_MAX_RINGS)
                return -EINVAL;
-       if (NULL == sem)
-               return -EINVAL;
        /* must signal first */
-       if (NULL == sem->signal_fence.context)
+       if (!sem->signal_fence.context)
                return -EINVAL;
 
        pthread_mutex_lock(&ctx->sequence_mutex);
@@ -514,9 +570,7 @@
 
 static int amdgpu_cs_reset_sem(amdgpu_semaphore_handle sem)
 {
-       if (NULL == sem)
-               return -EINVAL;
-       if (NULL == sem->signal_fence.context)
+       if (!sem || !sem->signal_fence.context)
                return -EINVAL;
 
        sem->signal_fence.context = NULL;;
@@ -530,7 +584,7 @@
 
 static int amdgpu_cs_unreference_sem(amdgpu_semaphore_handle sem)
 {
-       if (NULL == sem)
+       if (!sem)
                return -EINVAL;
 
        if (update_references(&sem->refcount, NULL))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/amdgpu/amdgpu_gpu_info.c 
new/libdrm-2.4.81/amdgpu/amdgpu_gpu_info.c
--- old/libdrm-2.4.80/amdgpu/amdgpu_gpu_info.c  2017-04-15 01:29:46.000000000 
+0200
+++ new/libdrm-2.4.81/amdgpu/amdgpu_gpu_info.c  2017-05-24 17:03:41.000000000 
+0200
@@ -234,8 +234,9 @@
 int amdgpu_query_gpu_info(amdgpu_device_handle dev,
                        struct amdgpu_gpu_info *info)
 {
-       if ((dev == NULL) || (info == NULL))
+       if (!dev || !info)
                return -EINVAL;
+
        /* Get ASIC info*/
        *info = dev->info;
 
@@ -300,7 +301,7 @@
        struct drm_amdgpu_info_gds gds_config = {};
         int r;
 
-       if (gds_info == NULL)
+       if (!gds_info)
                return -EINVAL;
 
         r = amdgpu_query_info(dev, AMDGPU_INFO_GDS_CONFIG,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/configure.ac new/libdrm-2.4.81/configure.ac
--- old/libdrm-2.4.80/configure.ac      2017-04-15 01:29:46.000000000 +0200
+++ new/libdrm-2.4.81/configure.ac      2017-05-24 17:03:41.000000000 +0200
@@ -20,7 +20,7 @@
 
 AC_PREREQ([2.63])
 AC_INIT([libdrm],
-        [2.4.80],
+        [2.4.81],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI],
         [libdrm])
 
@@ -54,7 +54,11 @@
 AC_SYS_LARGEFILE
 AC_FUNC_ALLOCA
 
+save_CFLAGS="$CFLAGS"
+export CFLAGS="$CFLAGS -Werror"
 AC_HEADER_MAJOR
+CFLAGS="$save_CFLAGS"
+
 AC_CHECK_HEADERS([sys/sysctl.h sys/select.h])
 
 # Initialize libtool
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/freedreno/freedreno_device.c 
new/libdrm-2.4.81/freedreno/freedreno_device.c
--- old/libdrm-2.4.80/freedreno/freedreno_device.c      2017-04-15 
01:29:46.000000000 +0200
+++ new/libdrm-2.4.81/freedreno/freedreno_device.c      2017-05-24 
17:03:41.000000000 +0200
@@ -112,13 +112,13 @@
 
 static void fd_device_del_impl(struct fd_device *dev)
 {
+       int close_fd = dev->closefd ? dev->fd : -1;
        fd_bo_cache_cleanup(&dev->bo_cache, 0);
        drmHashDestroy(dev->handle_table);
        drmHashDestroy(dev->name_table);
        dev->funcs->destroy(dev);
-       if (dev->closefd)
-               close(dev->fd);
-       free(dev);
+       if (close_fd >= 0)
+               close(close_fd);
 }
 
 drm_private void fd_device_del_locked(struct fd_device *dev)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/include/drm/amdgpu_drm.h 
new/libdrm-2.4.81/include/drm/amdgpu_drm.h
--- old/libdrm-2.4.80/include/drm/amdgpu_drm.h  2017-04-15 01:29:46.000000000 
+0200
+++ new/libdrm-2.4.81/include/drm/amdgpu_drm.h  2017-05-24 17:03:41.000000000 
+0200
@@ -406,7 +406,9 @@
 #define AMDGPU_HW_IP_UVD          3
 #define AMDGPU_HW_IP_VCE          4
 #define AMDGPU_HW_IP_UVD_ENC      5
-#define AMDGPU_HW_IP_NUM          6
+#define AMDGPU_HW_IP_VCN_DEC      6
+#define AMDGPU_HW_IP_VCN_ENC      7
+#define AMDGPU_HW_IP_NUM          8
 
 #define AMDGPU_HW_IP_INSTANCE_MAX_COUNT 1
 
@@ -816,6 +818,7 @@
 #define AMDGPU_FAMILY_VI                       130 /* Iceland, Tonga */
 #define AMDGPU_FAMILY_CZ                       135 /* Carrizo, Stoney */
 #define AMDGPU_FAMILY_AI                       141 /* Vega10 */
+#define AMDGPU_FAMILY_RV                       142 /* Raven */
 
 #if defined(__cplusplus)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/m4/libtool.m4 new/libdrm-2.4.81/m4/libtool.m4
--- old/libdrm-2.4.80/m4/libtool.m4     2017-04-15 01:29:49.000000000 +0200
+++ new/libdrm-2.4.81/m4/libtool.m4     2017-05-24 17:03:44.000000000 +0200
@@ -1,6 +1,6 @@
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
-#   Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
+#   Copyright (C) 1996-2001, 2003-2017 Free Software Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -1042,8 +1042,8 @@
 _LT_EOF
       echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
       $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
-      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
-      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
       echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
       $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
       cat > conftest.c << _LT_EOF
@@ -1493,9 +1493,22 @@
 m4_defun([_LT_PROG_AR],
 [AC_CHECK_TOOLS(AR, [ar], false)
 : ${AR=ar}
-: ${AR_FLAGS=cru}
 _LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+# Use ARFLAGS variable as AR's operation code to sync the variable naming with
+# Automake.  If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
+# higher priority because thats what people were doing historically (setting
+# ARFLAGS for automake and AR_FLAGS for libtool).  FIXME: Make the AR_FLAGS
+# variable obsoleted/removed.
+
+test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
+lt_ar_flags=$AR_FLAGS
+_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
+
+# Make AR_FLAGS overridable by 'make ARFLAGS='.  Don't try to run-time override
+# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
+_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}],
+         [Flags to create an archive])
 
 AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
   [lt_cv_ar_at_file=no
@@ -2207,26 +2220,35 @@
 striplib=
 old_striplib=
 AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
+if test -z "$STRIP"; then
+  AC_MSG_RESULT([no])
 else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP"; then
+  if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+    old_striplib="$STRIP --strip-debug"
+    striplib="$STRIP --strip-unneeded"
+    AC_MSG_RESULT([yes])
+  else
+    case $host_os in
+    darwin*)
+      # FIXME - insert some real tests, host_os isn't really good enough
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
       AC_MSG_RESULT([yes])
-    else
+      ;;
+    freebsd*)
+      if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
+        old_striplib="$STRIP --strip-debug"
+        striplib="$STRIP --strip-unneeded"
+        AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+      fi
+      ;;
+    *)
       AC_MSG_RESULT([no])
-    fi
-    ;;
-  *)
-    AC_MSG_RESULT([no])
-    ;;
-  esac
+      ;;
+    esac
+  fi
 fi
 _LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
 _LT_DECL([], [striplib], [1])
@@ -4919,7 +4941,7 @@
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
       _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | 
awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == 
"W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } 
else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
     else
-      _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e 
'\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 
2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") 
|| (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 
== "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 
sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e 
'\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 
2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") 
|| (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 
== "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print 
\$ 1 } } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
@@ -5156,6 +5178,7 @@
        emximp -o $lib $output_objdir/$libname.def'
       _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o 
$output_objdir/${libname}_dll.a $output_objdir/$libname.def'
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='@'
       ;;
 
     interix[[3-9]]*)
@@ -5373,7 +5396,7 @@
        if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
          _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | 
awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == 
"W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } 
else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
        else
-         _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e 
'\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 
2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") 
|| (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 
== "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 
sort -u > $export_symbols'
+         _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e 
'\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 
2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") 
|| (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 
== "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print 
\$ 1 } } }'\'' | sort -u > $export_symbols'
        fi
        aix_use_runtimelinking=no
 
@@ -5861,6 +5884,7 @@
        emximp -o $lib $output_objdir/$libname.def'
       _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o 
$output_objdir/${libname}_dll.a $output_objdir/$libname.def'
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='@'
       ;;
 
     osf3*)
@@ -6730,6 +6754,7 @@
          emximp -o $lib $output_objdir/$libname.def'
        _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o 
$output_objdir/${libname}_dll.a $output_objdir/$libname.def'
        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       _LT_TAGVAR(file_list_spec, $1)='@'
        ;;
 
       dgux*)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/m4/ltoptions.m4 new/libdrm-2.4.81/m4/ltoptions.m4
--- old/libdrm-2.4.80/m4/ltoptions.m4   2017-04-15 01:29:49.000000000 +0200
+++ new/libdrm-2.4.81/m4/ltoptions.m4   2017-05-24 17:03:44.000000000 +0200
@@ -1,6 +1,6 @@
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
-#   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
+#   Copyright (C) 2004-2005, 2007-2009, 2011-2017 Free Software
 #   Foundation, Inc.
 #   Written by Gary V. Vaughan, 2004
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/m4/ltsugar.m4 new/libdrm-2.4.81/m4/ltsugar.m4
--- old/libdrm-2.4.80/m4/ltsugar.m4     2017-04-15 01:29:49.000000000 +0200
+++ new/libdrm-2.4.81/m4/ltsugar.m4     2017-05-24 17:03:44.000000000 +0200
@@ -1,6 +1,6 @@
 # ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
 #
-# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
+# Copyright (C) 2004-2005, 2007-2008, 2011-2017 Free Software
 # Foundation, Inc.
 # Written by Gary V. Vaughan, 2004
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/m4/ltversion.m4 new/libdrm-2.4.81/m4/ltversion.m4
--- old/libdrm-2.4.80/m4/ltversion.m4   2017-04-15 01:29:49.000000000 +0200
+++ new/libdrm-2.4.81/m4/ltversion.m4   2017-05-24 17:03:44.000000000 +0200
@@ -1,6 +1,6 @@
 # ltversion.m4 -- version numbers                      -*- Autoconf -*-
 #
-#   Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2011-2017 Free Software Foundation, Inc.
 #   Written by Scott James Remnant, 2004
 #
 # This file is free software; the Free Software Foundation gives
@@ -9,15 +9,15 @@
 
 # @configure_input@
 
-# serial 4179 ltversion.m4
+# serial 4219 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.4.6])
-m4_define([LT_PACKAGE_REVISION], [2.4.6])
+m4_define([LT_PACKAGE_VERSION], [2.4.6.40-6ca5])
+m4_define([LT_PACKAGE_REVISION], [2.4.6.40])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.6'
-macro_revision='2.4.6'
+[macro_version='2.4.6.40-6ca5'
+macro_revision='2.4.6.40'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/m4/lt~obsolete.m4 new/libdrm-2.4.81/m4/lt~obsolete.m4
--- old/libdrm-2.4.80/m4/lt~obsolete.m4 2017-04-15 01:29:49.000000000 +0200
+++ new/libdrm-2.4.81/m4/lt~obsolete.m4 2017-05-24 17:03:44.000000000 +0200
@@ -1,6 +1,6 @@
 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
 #
-#   Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
+#   Copyright (C) 2004-2005, 2007, 2009, 2011-2017 Free Software
 #   Foundation, Inc.
 #   Written by Scott James Remnant, 2004.
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/tests/amdgpu/basic_tests.c 
new/libdrm-2.4.81/tests/amdgpu/basic_tests.c
--- old/libdrm-2.4.80/tests/amdgpu/basic_tests.c        2017-04-15 
01:29:46.000000000 +0200
+++ new/libdrm-2.4.81/tests/amdgpu/basic_tests.c        2017-05-24 
17:03:41.000000000 +0200
@@ -45,6 +45,7 @@
 static void amdgpu_memory_alloc(void);
 static void amdgpu_command_submission_gfx(void);
 static void amdgpu_command_submission_compute(void);
+static void amdgpu_command_submission_multi_fence(void);
 static void amdgpu_command_submission_sdma(void);
 static void amdgpu_userptr_test(void);
 static void amdgpu_semaphore_test(void);
@@ -59,6 +60,7 @@
        { "Userptr Test",  amdgpu_userptr_test },
        { "Command submission Test (GFX)",  amdgpu_command_submission_gfx },
        { "Command submission Test (Compute)", 
amdgpu_command_submission_compute },
+       { "Command submission Test (Multi-Fence)", 
amdgpu_command_submission_multi_fence },
        { "Command submission Test (SDMA)", amdgpu_command_submission_sdma },
        { "SW semaphore Test",  amdgpu_semaphore_test },
        CU_TEST_INFO_NULL,
@@ -1149,6 +1151,104 @@
        amdgpu_command_submission_sdma_copy_linear();
 }
 
+static void amdgpu_command_submission_multi_fence_wait_all(bool wait_all)
+{
+       amdgpu_context_handle context_handle;
+       amdgpu_bo_handle ib_result_handle, ib_result_ce_handle;
+       void *ib_result_cpu, *ib_result_ce_cpu;
+       uint64_t ib_result_mc_address, ib_result_ce_mc_address;
+       struct amdgpu_cs_request ibs_request[2] = {0};
+       struct amdgpu_cs_ib_info ib_info[2];
+       struct amdgpu_cs_fence fence_status[2] = {0};
+       uint32_t *ptr;
+       uint32_t expired;
+       amdgpu_bo_list_handle bo_list;
+       amdgpu_va_handle va_handle, va_handle_ce;
+       int r;
+       int i, ib_cs_num = 2;
+
+       r = amdgpu_cs_ctx_create(device_handle, &context_handle);
+       CU_ASSERT_EQUAL(r, 0);
+
+       r = amdgpu_bo_alloc_and_map(device_handle, 4096, 4096,
+                                   AMDGPU_GEM_DOMAIN_GTT, 0,
+                                   &ib_result_handle, &ib_result_cpu,
+                                   &ib_result_mc_address, &va_handle);
+       CU_ASSERT_EQUAL(r, 0);
+
+       r = amdgpu_bo_alloc_and_map(device_handle, 4096, 4096,
+                                   AMDGPU_GEM_DOMAIN_GTT, 0,
+                                   &ib_result_ce_handle, &ib_result_ce_cpu,
+                                   &ib_result_ce_mc_address, &va_handle_ce);
+       CU_ASSERT_EQUAL(r, 0);
+
+       r = amdgpu_get_bo_list(device_handle, ib_result_handle,
+                              ib_result_ce_handle, &bo_list);
+       CU_ASSERT_EQUAL(r, 0);
+
+       memset(ib_info, 0, 2 * sizeof(struct amdgpu_cs_ib_info));
+
+       /* IT_SET_CE_DE_COUNTERS */
+       ptr = ib_result_ce_cpu;
+       ptr[0] = 0xc0008900;
+       ptr[1] = 0;
+       ptr[2] = 0xc0008400;
+       ptr[3] = 1;
+       ib_info[0].ib_mc_address = ib_result_ce_mc_address;
+       ib_info[0].size = 4;
+       ib_info[0].flags = AMDGPU_IB_FLAG_CE;
+
+       /* IT_WAIT_ON_CE_COUNTER */
+       ptr = ib_result_cpu;
+       ptr[0] = 0xc0008600;
+       ptr[1] = 0x00000001;
+       ib_info[1].ib_mc_address = ib_result_mc_address;
+       ib_info[1].size = 2;
+
+       for (i = 0; i < ib_cs_num; i++) {
+               ibs_request[i].ip_type = AMDGPU_HW_IP_GFX;
+               ibs_request[i].number_of_ibs = 2;
+               ibs_request[i].ibs = ib_info;
+               ibs_request[i].resources = bo_list;
+               ibs_request[i].fence_info.handle = NULL;
+       }
+
+       r = amdgpu_cs_submit(context_handle, 0,ibs_request, ib_cs_num);
+
+       CU_ASSERT_EQUAL(r, 0);
+
+       for (i = 0; i < ib_cs_num; i++) {
+               fence_status[i].context = context_handle;
+               fence_status[i].ip_type = AMDGPU_HW_IP_GFX;
+               fence_status[i].fence = ibs_request[i].seq_no;
+       }
+
+       r = amdgpu_cs_wait_fences(fence_status, ib_cs_num, wait_all,
+                               AMDGPU_TIMEOUT_INFINITE,
+                               &expired, NULL);
+       CU_ASSERT_EQUAL(r, 0);
+
+       r = amdgpu_bo_unmap_and_free(ib_result_handle, va_handle,
+                                    ib_result_mc_address, 4096);
+       CU_ASSERT_EQUAL(r, 0);
+
+       r = amdgpu_bo_unmap_and_free(ib_result_ce_handle, va_handle_ce,
+                                    ib_result_ce_mc_address, 4096);
+       CU_ASSERT_EQUAL(r, 0);
+
+       r = amdgpu_bo_list_destroy(bo_list);
+       CU_ASSERT_EQUAL(r, 0);
+
+       r = amdgpu_cs_ctx_free(context_handle);
+       CU_ASSERT_EQUAL(r, 0);
+}
+
+static void amdgpu_command_submission_multi_fence(void)
+{
+       amdgpu_command_submission_multi_fence_wait_all(true);
+       amdgpu_command_submission_multi_fence_wait_all(false);
+}
+
 static void amdgpu_userptr_test(void)
 {
        int i, r, j;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/tests/modetest/modetest.c 
new/libdrm-2.4.81/tests/modetest/modetest.c
--- old/libdrm-2.4.80/tests/modetest/modetest.c 2017-04-15 01:29:46.000000000 
+0200
+++ new/libdrm-2.4.81/tests/modetest/modetest.c 2017-05-24 17:03:41.000000000 
+0200
@@ -174,6 +174,15 @@
 
 static bit_name_fn(mode_flag)
 
+static void dump_fourcc(uint32_t fourcc)
+{
+       printf(" %c%c%c%c",
+               fourcc,
+               fourcc >> 8,
+               fourcc >> 16,
+               fourcc >> 24);
+}
+
 static void dump_encoders(struct device *dev)
 {
        drmModeEncoder *encoder;
@@ -443,7 +452,7 @@
 
                printf("  formats:");
                for (j = 0; j < ovr->count_formats; j++)
-                       printf(" %4.4s", (char *)&ovr->formats[j]);
+                       dump_fourcc(ovr->formats[j]);
                printf("\n");
 
                if (plane->props) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/tests/util/kms.c new/libdrm-2.4.81/tests/util/kms.c
--- old/libdrm-2.4.80/tests/util/kms.c  2017-04-15 01:29:46.000000000 +0200
+++ new/libdrm-2.4.81/tests/util/kms.c  2017-05-24 17:03:41.000000000 +0200
@@ -79,6 +79,7 @@
        { DRM_MODE_ENCODER_VIRTUAL, "Virtual" },
        { DRM_MODE_ENCODER_DSI, "DSI" },
        { DRM_MODE_ENCODER_DPMST, "DPMST" },
+       { DRM_MODE_ENCODER_DPI, "DPI" },
 };
 
 const char *util_lookup_encoder_type_name(unsigned int type)
@@ -117,6 +118,7 @@
        { DRM_MODE_CONNECTOR_eDP, "eDP" },
        { DRM_MODE_CONNECTOR_VIRTUAL, "Virtual" },
        { DRM_MODE_CONNECTOR_DSI, "DSI" },
+       { DRM_MODE_CONNECTOR_DPI, "DPI" },
 };
 
 const char *util_lookup_connector_type_name(unsigned int type)
@@ -145,6 +147,7 @@
        "virtio_gpu",
        "mediatek",
        "meson",
+       "pl111",
 };
 
 int util_open(const char *device, const char *module)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/xf86drm.c new/libdrm-2.4.81/xf86drm.c
--- old/libdrm-2.4.80/xf86drm.c 2017-04-15 01:29:46.000000000 +0200
+++ new/libdrm-2.4.81/xf86drm.c 2017-05-24 17:03:41.000000000 +0200
@@ -3029,32 +3029,32 @@
 #endif
 }
 
-static int drmCompareBusInfo(drmDevicePtr a, drmDevicePtr b)
+int drmDevicesEqual(drmDevicePtr a, drmDevicePtr b)
 {
     if (a == NULL || b == NULL)
-        return -1;
+        return 0;
 
     if (a->bustype != b->bustype)
-        return -1;
+        return 0;
 
     switch (a->bustype) {
     case DRM_BUS_PCI:
-        return memcmp(a->businfo.pci, b->businfo.pci, sizeof(drmPciBusInfo));
+        return memcmp(a->businfo.pci, b->businfo.pci, sizeof(drmPciBusInfo)) 
== 0;
 
     case DRM_BUS_USB:
-        return memcmp(a->businfo.usb, b->businfo.usb, sizeof(drmUsbBusInfo));
+        return memcmp(a->businfo.usb, b->businfo.usb, sizeof(drmUsbBusInfo)) 
== 0;
 
     case DRM_BUS_PLATFORM:
-        return memcmp(a->businfo.platform, b->businfo.platform, 
sizeof(drmPlatformBusInfo));
+        return memcmp(a->businfo.platform, b->businfo.platform, 
sizeof(drmPlatformBusInfo)) == 0;
 
     case DRM_BUS_HOST1X:
-        return memcmp(a->businfo.host1x, b->businfo.host1x, 
sizeof(drmHost1xBusInfo));
+        return memcmp(a->businfo.host1x, b->businfo.host1x, 
sizeof(drmHost1xBusInfo)) == 0;
 
     default:
         break;
     }
 
-    return -1;
+    return 0;
 }
 
 static int drmGetNodeType(const char *name)
@@ -3669,7 +3669,7 @@
 
     for (i = 0; i < count; i++) {
         for (j = i + 1; j < count; j++) {
-            if (drmCompareBusInfo(local_devices[i], local_devices[j]) == 0) {
+            if (drmDevicesEqual(local_devices[i], local_devices[j])) {
                 local_devices[i]->available_nodes |= 
local_devices[j]->available_nodes;
                 node_type = log2(local_devices[j]->available_nodes);
                 memcpy(local_devices[i]->nodes[node_type],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libdrm-2.4.80/xf86drm.h new/libdrm-2.4.81/xf86drm.h
--- old/libdrm-2.4.80/xf86drm.h 2017-04-15 01:29:46.000000000 +0200
+++ new/libdrm-2.4.81/xf86drm.h 2017-05-24 17:03:41.000000000 +0200
@@ -851,6 +851,8 @@
 extern int drmGetDevice2(int fd, uint32_t flags, drmDevicePtr *device);
 extern int drmGetDevices2(uint32_t flags, drmDevicePtr devices[], int 
max_devices);
 
+extern int drmDevicesEqual(drmDevicePtr a, drmDevicePtr b);
+
 #if defined(__cplusplus)
 }
 #endif


Reply via email to