Mesa (main): gbm: Put common device creation in a helper function

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jul 6 17:27:21 UTC 2021


Module: Mesa
Branch: main
Commit: 8c935464ad2d3cf11f03d896a7fcb9d147c61e56
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c935464ad2d3cf11f03d896a7fcb9d147c61e56

Author: James Jones <jajones at nvidia.com>
Date:   Tue Jun 22 18:00:01 2021 -0700

gbm: Put common device creation in a helper function

Subsequent changes will use this same logic to
instantiate devices with the correct version and
set up their backend reference.

Signed-off-by: James Jones <jajones at nvidia.com>
Reviewed-by: Michel Dänzer <mdaenzer at redhat.com>
Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902>

---

 src/gbm/main/backend.c | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/src/gbm/main/backend.c b/src/gbm/main/backend.c
index 7f527fcf0f8..b002df92e16 100644
--- a/src/gbm/main/backend.c
+++ b/src/gbm/main/backend.c
@@ -48,13 +48,27 @@ static const struct gbm_backend_desc builtin_backends[] = {
    { "dri", &gbm_dri_backend },
 };
 
+static struct gbm_device *
+backend_create_device(const struct gbm_backend_desc *bd, int fd)
+{
+   const uint32_t abi_ver = VER_MIN(GBM_BACKEND_ABI_VERSION,
+                                    bd->backend->v0.backend_version);
+   struct gbm_device *dev = bd->backend->v0.create_device(fd, abi_ver);
+
+   if (dev) {
+      assert(abi_ver == dev->v0.backend_version);
+      dev->v0.backend_desc = bd;
+   }
+
+   return dev;
+}
+
 static struct gbm_device *
 find_backend(const char *name, int fd)
 {
    struct gbm_device *dev = NULL;
    const struct gbm_backend_desc *bd;
    unsigned i;
-   uint32_t abi_ver;
 
    for (i = 0; i < ARRAY_SIZE(builtin_backends); ++i) {
       bd = &builtin_backends[i];
@@ -62,15 +76,10 @@ find_backend(const char *name, int fd)
       if (name && strcmp(bd->name, name))
          continue;
 
-      abi_ver = VER_MIN(GBM_BACKEND_ABI_VERSION,
-                        bd->backend->v0.backend_version);
-      dev = bd->backend->v0.create_device(fd, abi-ver);
+      dev = backend_create_device(bd, fd);
 
-      if (dev) {
-         assert(abi_ver == dev->v0.backend_version);
-         dev->v0.backend_desc = bd;
+      if (dev)
          break;
-      }
    }
 
    return dev;



More information about the mesa-commit mailing list