configure.ac         |    2 +-
 src/openchrome_drm.h |    6 ++++++
 src/via_driver.c     |    2 +-
 src/via_memmgr.c     |    8 ++++++++
 4 files changed, 16 insertions(+), 2 deletions(-)

New commits:
commit 770ddae0023e49648d83e563c21e77dbe490a766
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Thu Aug 13 18:44:19 2020 -0700

    Version bumped to 0.6.302
    
    Starting with this version, KMS support will require OpenChrome DRM
    Version 3.3.0 or later.
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/configure.ac b/configure.ac
index 8adbd5d..8d7038b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-openchrome],
-        [0.6.301],
+        [0.6.302],
         
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome],
         [xf86-video-openchrome])
 
commit ae6f393fee019e4af708032d5a08482cced309b4
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Thu Aug 13 18:42:55 2020 -0700

    Add support for frame buffer unmapping via OpenChrome DRM uAPI
    
    This requires the use of OpenChrome DRM Version 3.3.0 or later.
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/src/via_driver.c b/src/via_driver.c
index e2c1138..b767a5f 100644
--- a/src/via_driver.c
+++ b/src/via_driver.c
@@ -67,7 +67,7 @@ typedef struct
 
 static const ViaDRMVersion drmVIADRMExpected = { 1, 3, 0 };
 static const ViaDRMVersion drmVIADRMCompat = { 3, 0, 0 };
-static const ViaDRMVersion drmOpenChromeDRMVersion = { 3, 2, 0 };
+static const ViaDRMVersion drmOpenChromeDRMVersion = { 3, 3, 0 };
 
 /* Prototypes. */
 static void VIAIdentify(int flags);
diff --git a/src/via_memmgr.c b/src/via_memmgr.c
index fd3fc4a..84b3ca4 100644
--- a/src/via_memmgr.c
+++ b/src/via_memmgr.c
@@ -247,12 +247,20 @@ void
 drm_bo_unmap(ScrnInfoPtr pScrn, struct buffer_object *obj)
 {
     VIAPtr pVia = VIAPTR(pScrn);
+    struct drm_openchrome_gem_unmap args;
 
     if (pVia->directRenderingType == DRI_2) {
         munmap(obj->ptr, obj->size);
     }
 
     obj->ptr = NULL;
+
+    memset(&args, 0, sizeof(struct drm_openchrome_gem_unmap));
+    args.handle = obj->handle;
+    drmCommandRead(pVia->drmmode.fd,
+                    DRM_OPENCHROME_GEM_UNMAP,
+                    &args,
+                    sizeof(struct drm_openchrome_gem_unmap));
 }
 
 void
commit ab5c6d753a29f826565b6962bee1db8ef720c8b9
Author: Kevin Brace <kevinbr...@gmx.com>
Date:   Thu Aug 13 17:48:27 2020 -0700

    Add DRM_OPENCHROME_GEM_UNMAP OpenChrome DRM uAPI call
    
    Signed-off-by: Kevin Brace <kevinbr...@gmx.com>

diff --git a/src/openchrome_drm.h b/src/openchrome_drm.h
index 06f7f2a..6253612 100644
--- a/src/openchrome_drm.h
+++ b/src/openchrome_drm.h
@@ -42,10 +42,12 @@ extern "C" {
 
 #define DRM_OPENCHROME_GEM_CREATE      0x00
 #define DRM_OPENCHROME_GEM_MAP         0x01
+#define DRM_OPENCHROME_GEM_UNMAP       0x02
 
 
 #define DRM_IOCTL_OPENCHROME_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + 
DRM_OPENCHROME_GEM_CREATE, struct drm_openchrome_gem_create)
 #define DRM_IOCTL_OPENCHROME_GEM_MAP    DRM_IOWR(DRM_COMMAND_BASE + 
DRM_OPENCHROME_GEM_MAP, struct drm_openchrome_gem_map)
+#define DRM_IOCTL_OPENCHROME_GEM_UNMAP  DRM_IOR(DRM_COMMAND_BASE + 
DRM_OPENCHROME_GEM_UNMAP, struct drm_openchrome_gem_unmap)
 
 
 struct drm_openchrome_gem_create {
@@ -61,6 +63,10 @@ struct drm_openchrome_gem_map {
        uint64_t map_offset;
 };
 
+struct drm_openchrome_gem_unmap {
+       uint32_t handle;
+};
+
 
 #if defined(__cplusplus)
 }
_______________________________________________
openchrome-devel mailing list
openchrome-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/openchrome-devel

Reply via email to