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