[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

libdrm: Changes to 'debian-unstable'



 configure.ac                                               |   18 
 debian/changelog                                           |    8 
 debian/libdrm2.symbols                                     |   10 
 debian/patches/Fix-headers-inclusion-in-xf86drmMode.c.diff |   29 -
 debian/rules                                               |    2 
 debian/upstream/signing-key.asc                            |   52 ++
 exynos/exynos_fimg2d.c                                     |   23 -
 include/drm/drm.h                                          |   10 
 include/drm/drm_mode.h                                     |   37 +
 include/drm/nouveau_drm.h                                  |    1 
 intel/intel_chipset.h                                      |   11 
 nouveau/abi16.c                                            |    3 
 nouveau/nouveau.h                                          |    1 
 nouveau/pushbuf.c                                          |    4 
 radeon/r600_pci_ids.h                                      |    1 
 tests/exynos/exynos_fimg2d_test.c                          |  112 -----
 tests/kmstest/main.c                                       |    1 
 tests/modetest/buffers.c                                   |   30 -
 tests/modetest/modetest.c                                  |   49 +-
 xf86drm.c                                                  |   14 
 xf86drmMode.c                                              |  289 ++++++++++++-
 xf86drmMode.h                                              |   24 +
 22 files changed, 534 insertions(+), 195 deletions(-)

New commits:
commit ba14218105057fe79c3b2a8f5c7b851e57aca1f4
Author: Sven Joachim <svenjoac@gmx.de>
Date:   Wed Jul 1 17:23:02 2015 +0200

    Close bug #789759
    
    Fixed in commit 812e8fe6ce46d733c30207ee26c788c61f546294.

diff --git a/debian/changelog b/debian/changelog
index 6938ef8..d2756b9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,8 @@ libdrm (2.4.62-1) UNRELEASED; urgency=medium
 
   [ Sven Joachim ]
   * New upstream release.
+    - nouveau: restore check that avoids multiple user bos per kernel bo
+      (Closes: #789759).
   * Update symbols file and bump shlibs for libdrm2.
   * Refresh the patch from 2.4.60-3 after upstream changes.
   * Remove duplicate Section fields from debian/control.

commit c30399694a21845bf0f36c29c97cd38351b96b88
Author: Sven Joachim <svenjoac@gmx.de>
Date:   Wed Jul 1 17:17:30 2015 +0200

    Update debian/upstream/signing-key.asc
    
    Add Emil Velikov's key 2CEB490D.

diff --git a/debian/changelog b/debian/changelog
index 06c7d69..6938ef8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,7 @@ libdrm (2.4.62-1) UNRELEASED; urgency=medium
   * Update symbols file and bump shlibs for libdrm2.
   * Refresh the patch from 2.4.60-3 after upstream changes.
   * Remove duplicate Section fields from debian/control.
+  * Update debian/upstream/signing-key.asc.
   * Bump Standards-Version to 3.9.6, no changes needed.
 
   [ Julien Cristau ]
diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc
index 7e70a30..a99bceb 100644
--- a/debian/upstream/signing-key.asc
+++ b/debian/upstream/signing-key.asc
@@ -139,3 +139,55 @@ xjRzzOuOtaxMftMlZwRNXm1zh5CTzMOYpXeetPXrLwUOSF5VeN8AK//gGlbjZt1o
 iQyTzgz/F98QzHzNrRk8DdK4kxVkpvk=
 =G7Eh
 -----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1
+
+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
+Omj3BC4KcQ==
+=XQbm
+-----END PGP PUBLIC KEY BLOCK-----

commit f23099414099b65feb8bd2b3555035b2893552fd
Author: Sven Joachim <svenjoac@gmx.de>
Date:   Wed Jul 1 17:15:20 2015 +0200

    Update symbols file and bump shlibs for libdrm2 again

diff --git a/debian/libdrm2.symbols b/debian/libdrm2.symbols
index 3e1259e..8c65b19 100644
--- a/debian/libdrm2.symbols
+++ b/debian/libdrm2.symbols
@@ -80,10 +80,20 @@ libdrm.so.2 libdrm2 #MINVER#
  drmMarkBufs@Base 2.3.1
  drmModeAddFB2@Base 2.4.30
  drmModeAddFB@Base 2.4.3
+ drmModeAtomicAddProperty@Base 2.4.62
+ drmModeAtomicAlloc@Base 2.4.62
+ drmModeAtomicCommit@Base 2.4.62
+ drmModeAtomicDuplicate@Base 2.4.62
+ drmModeAtomicFree@Base 2.4.62
+ drmModeAtomicGetCursor@Base 2.4.62
+ drmModeAtomicMerge@Base 2.4.62
+ drmModeAtomicSetCursor@Base 2.4.62
  drmModeAttachMode@Base 2.4.3
  drmModeConnectorSetProperty@Base 2.4.3
+ drmModeCreatePropertyBlob@Base 2.4.62
  drmModeCrtcGetGamma@Base 2.4.3
  drmModeCrtcSetGamma@Base 2.4.3
+ drmModeDestroyPropertyBlob@Base 2.4.62
  drmModeDetachMode@Base 2.4.3
  drmModeDirtyFB@Base 2.4.17
  drmModeFreeConnector@Base 2.4.3
diff --git a/debian/rules b/debian/rules
index ee521ec..f712b4a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -92,7 +92,7 @@ endif
 	dh_strip -s --remaining-packages
 
 override_dh_makeshlibs:
-	dh_makeshlibs -plibdrm2 -V'libdrm2 (>= 2.4.61)' --add-udeb=libdrm2-udeb -- -c4
+	dh_makeshlibs -plibdrm2 -V'libdrm2 (>= 2.4.62)' --add-udeb=libdrm2-udeb -- -c4
 ifeq ($(INTEL), yes)
 	dh_makeshlibs -plibdrm-intel1 -V'libdrm-intel1 (>= 2.4.60)' -- -c4
 endif

commit 7353c27f8bd04fda896ba706cd64d4920a8f0d79
Author: Sven Joachim <svenjoac@gmx.de>
Date:   Wed Jul 1 17:03:42 2015 +0200

    Refresh patch Fix-headers-inclusion-in-xf86drmMode.c.diff
    
    Part of it has been applied upstream in commit 5f76273d51fee5c176.

diff --git a/debian/changelog b/debian/changelog
index 2dc48c0..06c7d69 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ libdrm (2.4.62-1) UNRELEASED; urgency=medium
   [ Sven Joachim ]
   * New upstream release.
   * Update symbols file and bump shlibs for libdrm2.
+  * Refresh the patch from 2.4.60-3 after upstream changes.
   * Remove duplicate Section fields from debian/control.
   * Bump Standards-Version to 3.9.6, no changes needed.
 
diff --git a/debian/patches/Fix-headers-inclusion-in-xf86drmMode.c.diff b/debian/patches/Fix-headers-inclusion-in-xf86drmMode.c.diff
index c87d661..4489de5 100644
--- a/debian/patches/Fix-headers-inclusion-in-xf86drmMode.c.diff
+++ b/debian/patches/Fix-headers-inclusion-in-xf86drmMode.c.diff
@@ -3,40 +3,23 @@ From: Julien Cristau <jcristau@debian.org>
 Date: Sun, 26 Apr 2015 11:53:02 +0200
 Subject: [PATCH] Fix headers inclusion in xf86drmMode.c
 
-- config.h needs to be included first
 - add sys/sysctl.h to get sysctlbyname declaration on kFreeBSD
 ---
- xf86drmMode.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
+ xf86drmMode.c | 1 +
+ 1 file changed, 1 insertion(+)
 
 diff --git a/xf86drmMode.c b/xf86drmMode.c
-index 61d5e01..de37548 100644
+index f4b8d14..b7e0116 100644
 --- a/xf86drmMode.c
 +++ b/xf86drmMode.c
-@@ -32,6 +32,9 @@
-  * IN THE SOFTWARE.
-  *
-  */
-+#ifdef HAVE_CONFIG_H
-+#include "config.h"
-+#endif
- 
- /*
-  * TODO the types we are after are defined in diffrent headers on diffrent
-@@ -39,12 +42,9 @@
-  */
+@@ -46,6 +46,7 @@
  #include <stdint.h>
+ #include <stdlib.h>
  #include <sys/ioctl.h>
 +#include <sys/sysctl.h>
  #include <stdio.h>
+ #include <stdbool.h>
  
--#ifdef HAVE_CONFIG_H
--#include "config.h"
--#endif
--
- #include "xf86drmMode.h"
- #include "xf86drm.h"
- #include <drm.h>
 -- 
 2.1.4
 

commit 77fdb7b74322a40281a8d807168a9b567e0e89c3
Author: Sven Joachim <svenjoac@gmx.de>
Date:   Wed Jul 1 16:50:27 2015 +0200

    New upstream release

diff --git a/debian/changelog b/debian/changelog
index 848e9e2..2dc48c0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,7 @@
-libdrm (2.4.61-1) UNRELEASED; urgency=medium
+libdrm (2.4.62-1) UNRELEASED; urgency=medium
 
   [ Sven Joachim ]
-  * New upstream version.
+  * New upstream release.
   * Update symbols file and bump shlibs for libdrm2.
   * Remove duplicate Section fields from debian/control.
   * Bump Standards-Version to 3.9.6, no changes needed.

commit ba4b5ac010ab85406ec52e3906e13d58cd9aa782
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Mon Jun 29 19:25:35 2015 +0100

    configure.ac: bump version to 2.4.62 for release
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/configure.ac b/configure.ac
index 32d034e..1456b90 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,7 +20,7 @@
 
 AC_PREREQ([2.63])
 AC_INIT([libdrm],
-        [2.4.61],
+        [2.4.62],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI],
         [libdrm])
 

commit 2bf0d5bf63cda5a0abd79f2fd4b5737cb852b476
Author: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Date:   Fri Jun 12 20:15:14 2015 +0200

    tests/exynos: handle G2D_IMGBUF_COLOR in switch statements
    
    This fixes a compiler warning about missing handling of enum
    values in the switch statements.
    
    Also remove the silent mapping to G2D_IMGBUF_GEM when an
    unknown buffer type is encountered. We have full control
    about the type here, and if it's unknown then we obviously
    have a bug in the code.
    
    Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
    Acked-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/tests/exynos/exynos_fimg2d_test.c b/tests/exynos/exynos_fimg2d_test.c
index 59de4ba..8794dac 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -270,9 +270,10 @@ static int g2d_copy_test(struct exynos_device *dev, struct exynos_bo *src,
 		src_img.user_ptr[0].userptr = userptr;
 		src_img.user_ptr[0].size = size;
 		break;
+	case G2D_IMGBUF_COLOR:
 	default:
-		type = G2D_IMGBUF_GEM;
-		break;
+		ret = -EFAULT;
+		goto fail;
 	}
 
 	printf("copy test with %s.\n",
@@ -306,6 +307,7 @@ err_free_userptr:
 		if (userptr)
 			free((void *)userptr);
 
+fail:
 	g2d_fini(ctx);
 
 	return ret;
@@ -349,9 +351,10 @@ static int g2d_copy_with_scale_test(struct exynos_device *dev,
 		src_img.user_ptr[0].userptr = userptr;
 		src_img.user_ptr[0].size = size;
 		break;
+	case G2D_IMGBUF_COLOR:
 	default:
-		type = G2D_IMGBUF_GEM;
-		break;
+		ret = -EFAULT;
+		goto fail;
 	}
 
 	printf("copy and scale test with %s.\n",
@@ -390,6 +393,7 @@ err_free_userptr:
 		if (userptr)
 			free((void *)userptr);
 
+fail:
 	g2d_fini(ctx);
 
 	return 0;
@@ -435,9 +439,10 @@ static int g2d_blend_test(struct exynos_device *dev,
 		src_img.user_ptr[0].userptr = userptr;
 		src_img.user_ptr[0].size = size;
 		break;
+	case G2D_IMGBUF_COLOR:
 	default:
-		type = G2D_IMGBUF_GEM;
-		break;
+		ret = -EFAULT;
+		goto fail;
 	}
 
 	printf("blend test with %s.\n",
@@ -487,6 +492,7 @@ err_free_userptr:
 		if (userptr)
 			free((void *)userptr);
 
+fail:
 	g2d_fini(ctx);
 
 	return 0;
@@ -532,6 +538,7 @@ static int g2d_checkerboard_test(struct exynos_device *dev,
 		src_img.user_ptr[0].userptr = (unsigned long)checkerboard;
 		src_img.user_ptr[0].size = img_w * img_h * 4;
 		break;
+	case G2D_IMGBUF_COLOR:
 	default:
 		ret = -EFAULT;
 		goto fail;

commit b26c8efb6566e78d12a93fee7c01f6857e07f611
Author: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Date:   Fri Jun 12 20:15:13 2015 +0200

    tests/exynos: remove connector_find_plane
    
    No test uses DRM planes at the moment so this function
    is never called. Inspection of the git history shows
    that DRM planes were also never used in these tests
    in the past.
    
    Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
    Acked-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/tests/exynos/exynos_fimg2d_test.c b/tests/exynos/exynos_fimg2d_test.c
index 1ec7340..59de4ba 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -112,37 +112,6 @@ static void connector_find_mode(int fd, struct connector *c,
 		c->crtc = c->encoder->crtc_id;
 }
 
-static int connector_find_plane(int fd, unsigned int *plane_id)
-{
-	drmModePlaneRes *plane_resources;
-	drmModePlane *ovr;
-	int i;
-
-	plane_resources = drmModeGetPlaneResources(fd);
-	if (!plane_resources) {
-		fprintf(stderr, "drmModeGetPlaneResources failed: %s\n",
-			strerror(errno));
-		return -1;
-	}
-
-	for (i = 0; i < plane_resources->count_planes; i++) {
-		plane_id[i] = 0;
-
-		ovr = drmModeGetPlane(fd, plane_resources->planes[i]);
-		if (!ovr) {
-			fprintf(stderr, "drmModeGetPlane failed: %s\n",
-				strerror(errno));
-			continue;
-		}
-
-		if (ovr->possible_crtcs & (1 << 0))
-			plane_id[i] = ovr->plane_id;
-		drmModeFreePlane(ovr);
-	}
-
-	return 0;
-}
-
 static int drm_set_crtc(struct exynos_device *dev, struct connector *c,
 			unsigned int fb_id)
 {

commit 13ad10afc306a76f9a61e6a339e412a34a59bfe4
Author: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Date:   Fri Jun 12 20:15:12 2015 +0200

    tests/exynos: simplify drm_set_crtc
    
    We can just return 'ret' here, the goto serves no purpose.
    
    Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
    Acked-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/tests/exynos/exynos_fimg2d_test.c b/tests/exynos/exynos_fimg2d_test.c
index de6a2b7..1ec7340 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -150,14 +150,9 @@ static int drm_set_crtc(struct exynos_device *dev, struct connector *c,
 
 	ret = drmModeSetCrtc(dev->fd, c->crtc,
 			fb_id, 0, 0, &c->id, 1, c->mode);
-	if (ret) {
+	if (ret)
 		drmMsg("failed to set mode: %s\n", strerror(errno));
-		goto err;
-	}
-
-	return 0;
 
-err:
 	return ret;
 }
 

commit 28d896c763e0cc2ab8f9679ee75b756bdd587da7
Author: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Date:   Fri Jun 12 20:15:11 2015 +0200

    tests/exynos: remove struct fimg2d_test_case
    
    It doesn't make sense to keep this structure, since we
    can just call all tests directly. An inspection of the
    git history shows that no code ever used this
    abstraction in the past.
    
    Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
    Acked-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/tests/exynos/exynos_fimg2d_test.c b/tests/exynos/exynos_fimg2d_test.c
index 080d178..de6a2b7 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -37,30 +37,6 @@
 
 static unsigned int screen_width, screen_height;
 
-/*
- * A structure to test fimg2d hw.
- *
- * @solid_fill: fill given color data to source buffer.
- * @copy: copy source to destination buffer.
- * @copy_with_scale: copy source to destination buffer scaling up or
- *	down properly.
- * @blend: blend source to destination buffer.
- */
-struct fimg2d_test_case {
-	int (*solid_fill)(struct exynos_device *dev, struct exynos_bo *dst);
-	int (*copy)(struct exynos_device *dev, struct exynos_bo *src,
-			struct exynos_bo *dst, enum e_g2d_buf_type);
-	int (*copy_with_scale)(struct exynos_device *dev,
-				struct exynos_bo *src, struct exynos_bo *dst,
-				enum e_g2d_buf_type);
-	int (*blend)(struct exynos_device *dev,
-				struct exynos_bo *src, struct exynos_bo *dst,
-				enum e_g2d_buf_type);
-	int (*checkerboard)(struct exynos_device *dev,
-				struct exynos_bo *src, struct exynos_bo *dst,
-				enum e_g2d_buf_type);
-};
-
 struct connector {
 	uint32_t id;
 	char mode_str[64];
@@ -630,14 +606,6 @@ fail:
 	return ret;
 }
 
-static struct fimg2d_test_case test_case = {
-	.solid_fill = &g2d_solid_fill_test,
-	.copy = &g2d_copy_test,
-	.copy_with_scale = &g2d_copy_with_scale_test,
-	.blend = &g2d_blend_test,
-	.checkerboard = &g2d_checkerboard_test,
-};
-
 static void usage(char *name)
 {
 	fprintf(stderr, "usage: %s [-s]\n", name);
@@ -747,7 +715,7 @@ int main(int argc, char **argv)
 	if (ret < 0)
 		goto err_rm_fb;
 
-	ret = test_case.solid_fill(dev, bo);
+	ret = g2d_solid_fill_test(dev, bo);
 	if (ret < 0) {
 		fprintf(stderr, "failed to solid fill operation.\n");
 		goto err_rm_fb;
@@ -761,7 +729,7 @@ int main(int argc, char **argv)
 		goto err_rm_fb;
 	}
 
-	ret = test_case.copy(dev, src, bo, G2D_IMGBUF_GEM);
+	ret = g2d_copy_test(dev, src, bo, G2D_IMGBUF_GEM);
 	if (ret < 0) {
 		fprintf(stderr, "failed to test copy operation.\n");
 		goto err_free_src;
@@ -769,7 +737,7 @@ int main(int argc, char **argv)
 
 	wait_for_user_input(0);
 
-	ret = test_case.copy_with_scale(dev, src, bo, G2D_IMGBUF_GEM);
+	ret = g2d_copy_with_scale_test(dev, src, bo, G2D_IMGBUF_GEM);
 	if (ret < 0) {
 		fprintf(stderr, "failed to test copy and scale operation.\n");
 		goto err_free_src;
@@ -777,7 +745,7 @@ int main(int argc, char **argv)
 
 	wait_for_user_input(0);
 
-	ret = test_case.checkerboard(dev, src, bo, G2D_IMGBUF_GEM);
+	ret = g2d_checkerboard_test(dev, src, bo, G2D_IMGBUF_GEM);
 	if (ret < 0) {
 		fprintf(stderr, "failed to issue checkerboard test.\n");
 		goto err_free_src;
@@ -794,7 +762,7 @@ int main(int argc, char **argv)
 	 * Disable the test for now, until the kernel code has been sanitized.
 	 */
 #if 0
-	ret  = test_case.blend(dev, src, bo, G2D_IMGBUF_USERPTR);
+	ret  = g2d_blend_test(dev, src, bo, G2D_IMGBUF_USERPTR);
 	if (ret < 0)
 		fprintf(stderr, "failed to test blend operation.\n");
 

commit 3aeea6198d3c62bab2ce98450f47ff91e402784b
Author: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Date:   Fri Jun 12 20:15:10 2015 +0200

    tests/exynos: remove unused define
    
    It doesn't make sense to limit the number of
    test cases anyway.
    
    Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
    Acked-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/tests/exynos/exynos_fimg2d_test.c b/tests/exynos/exynos_fimg2d_test.c
index 6af9277..080d178 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -34,7 +34,6 @@
 #include "exynos_fimg2d.h"
 
 #define DRM_MODULE_NAME		"exynos"
-#define MAX_TEST_CASE		8
 
 static unsigned int screen_width, screen_height;
 

commit 0536d33f077ef92b5e9577c32a8772dd79f31c43
Author: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Date:   Fri Jun 12 20:15:09 2015 +0200

    tests/exynos: clean struct connector
    
    Remove all unused struct members. An inspection of the
    git history shows that these members were also never
    used in the past.
    
    Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
    Acked-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/tests/exynos/exynos_fimg2d_test.c b/tests/exynos/exynos_fimg2d_test.c
index 64dacfa..6af9277 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -65,17 +65,9 @@ struct fimg2d_test_case {
 struct connector {
 	uint32_t id;
 	char mode_str[64];
-	char format_str[5];
-	unsigned int fourcc;
 	drmModeModeInfo *mode;
 	drmModeEncoder *encoder;
 	int crtc;
-	int pipe;
-	int plane_zpos;
-	unsigned int fb_id[2], current_fb_id;
-	struct timeval start;
-
-	int swap_count;
 };
 
 static void connector_find_mode(int fd, struct connector *c,
@@ -750,8 +742,6 @@ int main(int argc, char **argv)
 	if (ret < 0)
 		goto err_destroy_buffer;
 
-	con.plane_zpos = -1;
-
 	memset(bo->vaddr, 0xff, screen_width * screen_height * 4);
 
 	ret = drm_set_crtc(dev, &con, fb_id);

commit 53b1081da1b05e6225d93d4a6890fba4eba8313e
Author: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Date:   Fri Jun 12 20:15:08 2015 +0200

    exynos/fimg2d: simplify g2d_fini()
    
    free()ing a nullptr is a noop, so remove the check.
    
    Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
    Acked-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
index 5ea42e6..24a06d0 100644
--- a/exynos/exynos_fimg2d.c
+++ b/exynos/exynos_fimg2d.c
@@ -254,8 +254,7 @@ struct g2d_context *g2d_init(int fd)
 
 void g2d_fini(struct g2d_context *ctx)
 {
-	if (ctx)
-		free(ctx);
+	free(ctx);
 }
 
 /**

commit 8d8bbbb9722c3eed3e2736da95d2fef4613d97fb
Author: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Date:   Fri Jun 12 20:15:07 2015 +0200

    tests/exynos: replace return by break
    
    The 'usage' function already does exit(0), so that this
    'return -EINVAL' is never called. Just put a break there
    to avoid confusion.
    
    Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
    Acked-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/tests/exynos/exynos_fimg2d_test.c b/tests/exynos/exynos_fimg2d_test.c
index e64bb32..64dacfa 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -689,7 +689,7 @@ int main(int argc, char **argv)
 			break;
 		default:
 			usage(argv[0]);
-			return -EINVAL;
+			break;
 		}
 	}
 

commit 7da8f07274cfe57cfd157e184f1f0b4c15405b9e
Author: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Date:   Fri Jun 12 20:15:06 2015 +0200

    exynos: fimg2d: fix return codes
    
    Even if flushing the command buffer doesn't succeed, the
    G2D calls would still return zero. Fix this by just passing
    the flush return code.
    
    In fact error handling currently ignores the fact that
    g2d_add_cmd() can fail. This is going to be handled
    in a later patch.
    
    Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
    Acked-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
index 86ae898..5ea42e6 100644
--- a/exynos/exynos_fimg2d.c
+++ b/exynos/exynos_fimg2d.c
@@ -330,9 +330,7 @@ g2d_solid_fill(struct g2d_context *ctx, struct g2d_image *img,
 	bitblt.data.fast_solid_color_fill_en = 1;
 	g2d_add_cmd(ctx, BITBLT_COMMAND_REG, bitblt.val);
 
-	g2d_flush(ctx);
-
-	return 0;
+	return g2d_flush(ctx);
 }
 
 /**
@@ -415,9 +413,7 @@ g2d_copy(struct g2d_context *ctx, struct g2d_image *src,
 	rop4.data.unmasked_rop3 = G2D_ROP3_SRC;
 	g2d_add_cmd(ctx, ROP4_REG, rop4.val);
 
-	g2d_flush(ctx);
-
-	return 0;
+	return g2d_flush(ctx);
 }
 
 /**
@@ -527,9 +523,7 @@ g2d_copy_with_scale(struct g2d_context *ctx, struct g2d_image *src,
 	pt.data.y = dst_y + dst_h;
 	g2d_add_cmd(ctx, DST_RIGHT_BOTTOM_REG, pt.val);
 
-	g2d_flush(ctx);
-
-	return 0;
+	return g2d_flush(ctx);
 }
 
 /**
@@ -636,9 +630,7 @@ g2d_blend(struct g2d_context *ctx, struct g2d_image *src,
 	pt.data.y = dst_y + h;
 	g2d_add_cmd(ctx, DST_RIGHT_BOTTOM_REG, pt.val);
 
-	g2d_flush(ctx);
-
-	return 0;
+	return g2d_flush(ctx);
 }
 
 /**
@@ -766,7 +758,5 @@ g2d_scale_and_blend(struct g2d_context *ctx, struct g2d_image *src,
 	pt.data.y = dst_y + dst_h;
 	g2d_add_cmd(ctx, DST_RIGHT_BOTTOM_REG, pt.val);
 
-	g2d_flush(ctx);
-
-	return 0;
+	return g2d_flush(ctx);
 }

commit 47a2de27a0f087908e3063fdd6dfdececd2db75b
Author: Matt Turner <mattst88@gmail.com>
Date:   Mon Jun 22 09:56:33 2015 -0700

    configure: Add flag to disable valgrind support.
    
    v2 [Emil Velikov]: Autodetect valgrind.
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/configure.ac b/configure.ac
index 78a0010..32d034e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -403,11 +403,25 @@ else
 fi
 AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"])
 
+AC_ARG_ENABLE(valgrind,
+              [AS_HELP_STRING([--enable-valgrind],
+                             [Build libdrm with  valgrind support (default: auto)])],
+                             [VALGRIND=$enableval], [VALGRIND=yes])
 PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no])
-if test "x$have_valgrind" = "xyes"; then
+AC_MSG_CHECKING([whether to enable Valgrind support])
+if test "x$VALGRIND" = xauto; then
+	VALGRIND="$have_valgrind"
+fi
+
+if test "x$VALGRIND" = "xyes"; then
+	if ! test "x$have_valgrind" = xyes; then
+		AC_MSG_ERROR([Valgrind support required but not present])
+	fi
 	AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings])
 fi
 
+AC_MSG_RESULT([$VALGRIND])
+
 AC_ARG_WITH([kernel-source],
             [AS_HELP_STRING([--with-kernel-source],
               [specify path to linux kernel source])],

commit 5f76273d51fee5c176302ae5f57673461b80333b
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Mon Jun 29 17:32:21 2015 +0100

    xf86drmMode: include config.h before anything else
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/xf86drmMode.c b/xf86drmMode.c
index 206d1c2..f4b8d14 100644
--- a/xf86drmMode.c
+++ b/xf86drmMode.c
@@ -37,6 +37,11 @@
  * TODO the types we are after are defined in diffrent headers on diffrent
  * platforms find which headers to include to get uint32_t
  */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <limits.h>
 #include <stdint.h>
 #include <stdlib.h>
@@ -44,10 +49,6 @@
 #include <stdio.h>
 #include <stdbool.h>
 
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
 #include "xf86drmMode.h"
 #include "xf86drm.h"
 #include <drm.h>

commit 8426967d4e34ef5924a30166662c60d1003072bd
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Mon Jun 22 17:58:05 2015 +0000

    xf86drmMode: remove unused valgrind(VG) macros
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/xf86drmMode.c b/xf86drmMode.c
index 73c8695..206d1c2 100644
--- a/xf86drmMode.c
+++ b/xf86drmMode.c
@@ -56,14 +56,6 @@
 #include <unistd.h>
 #include <errno.h>
 
-#ifdef HAVE_VALGRIND
-#include <valgrind.h>
-#include <memcheck.h>
-#define VG(x) x
-#else
-#define VG(x)
-#endif
-
 #define memclear(s) memset(&s, 0, sizeof(s))
 
 #define U642VOID(x) ((void *)(unsigned long)(x))

commit 32471b265c6fbce6d519f0420a0ffeb608296502
Author: Daniel Stone <daniels@collabora.com>
Date:   Mon Jun 22 17:26:03 2015 +0100

    Add blob property create/destroy ioctl wrappers
    
    v2: Use memclear to zero out structure.
    
    Signed-off-by: Daniel Stone <daniels@collabora.com>
    Reviewed-by: Rob Clark <robclark@freedesktop.org>

diff --git a/include/drm/drm.h b/include/drm/drm.h
index d1dc3e3..167b7b8 100644
--- a/include/drm/drm.h
+++ b/include/drm/drm.h
@@ -766,6 +766,8 @@ struct drm_prime_handle {
 #define DRM_IOCTL_MODE_OBJ_SETPROPERTY	DRM_IOWR(0xBA, struct drm_mode_obj_set_property)
 #define DRM_IOCTL_MODE_CURSOR2		DRM_IOWR(0xBB, struct drm_mode_cursor2)
 #define DRM_IOCTL_MODE_ATOMIC		DRM_IOWR(0xBC, struct drm_mode_atomic)
+#define DRM_IOCTL_MODE_CREATEPROPBLOB	DRM_IOWR(0xBD, struct drm_mode_create_blob)
+#define DRM_IOCTL_MODE_DESTROYPROPBLOB	DRM_IOWR(0xBE, struct drm_mode_destroy_blob)
 
 /**
  * Device specific ioctls should only be in their respective headers
diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h
index 66f856f..69c1ac3 100644
--- a/include/drm/drm_mode.h
+++ b/include/drm/drm_mode.h
@@ -523,4 +523,25 @@ struct drm_mode_atomic {
 	__u64 user_data;
 };
 
+/**
+ * Create a new 'blob' data property, copying length bytes from data pointer,
+ * and returning new blob ID.
+ */
+struct drm_mode_create_blob {
+	/** Pointer to data to copy. */
+	__u64 data;
+	/** Length of data to copy. */
+	__u32 length;
+	/** Return: new property ID. */
+	__u32 blob_id;
+};
+
+/**
+ * Destroy a user-created blob property.
+ */
+struct drm_mode_destroy_blob {
+	__u32 blob_id;
+};
+
+
 #endif
diff --git a/xf86drmMode.c b/xf86drmMode.c
index a75eca3..73c8695 100644
--- a/xf86drmMode.c
+++ b/xf86drmMode.c
@@ -1387,3 +1387,37 @@ out:
 
 	return ret;
 }
+
+int
+drmModeCreatePropertyBlob(int fd, const void *data, size_t length, uint32_t *id)
+{
+	struct drm_mode_create_blob create;
+	int ret;
+
+	if (length >= 0xffffffff)
+		return -ERANGE;
+
+	memclear(create);
+
+	create.length = length;
+	create.data = (uintptr_t) data;
+	create.blob_id = 0;
+	*id = 0;
+
+	ret = DRM_IOCTL(fd, DRM_IOCTL_MODE_CREATEPROPBLOB, &create);
+	if (ret != 0)
+		return ret;
+
+	*id = create.blob_id;
+	return 0;
+}
+
+int
+drmModeDestroyPropertyBlob(int fd, uint32_t id)
+{
+	struct drm_mode_destroy_blob destroy;
+
+	memclear(destroy);
+	destroy.blob_id = id;
+	return DRM_IOCTL(fd, DRM_IOCTL_MODE_DESTROYPROPBLOB, &destroy);
+}
diff --git a/xf86drmMode.h b/xf86drmMode.h
index 317ea23..1c10023 100644
--- a/xf86drmMode.h
+++ b/xf86drmMode.h
@@ -503,6 +503,11 @@ extern int drmModeAtomicCommit(int fd,
 			       uint32_t flags,
 			       void *user_data);
 
+extern int drmModeCreatePropertyBlob(int fd, const void *data, size_t size,
+				     uint32_t *id);
+extern int drmModeDestroyPropertyBlob(int fd, uint32_t id);
+
+
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif

commit ed44e0b9585c563905447eceed12af9c1c7ca8d4
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Mon Jun 22 17:26:02 2015 +0100


Reply to: