summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Jones <jajones@nvidia.com>2019-12-13 16:20:02 -0800
committerMarge Bot <eric+marge@anholt.net>2021-07-06 16:57:59 +0000
commitaf1f517ab9fae0a8dee7c17b2fc1beccc30a1c3c (patch)
treeb4f0caca58094e0efcff8b621ea4997614feca70
parent00b2a45edf69833c4dcc6726e6b3e155ec6cc077 (diff)
gbm: Consolidate env var and default backend loops
Signed-off-by: James Jones <jajones@nvidia.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902>
-rw-r--r--src/gbm/main/backend.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/gbm/main/backend.c b/src/gbm/main/backend.c
index 50c874a86f2..6e563dcf239 100644
--- a/src/gbm/main/backend.c
+++ b/src/gbm/main/backend.c
@@ -52,11 +52,11 @@ find_backend(const char *name, int fd)
struct gbm_device *dev = NULL;
unsigned i;
- for (i = 0; i < ARRAY_SIZE(backends); ++i) {
- if (strcmp(backends[i].name, name) == 0) {
- dev = backends[i].backend->create_device(fd);
- break;
- }
+ for (i = 0; i < ARRAY_SIZE(backends) && dev == NULL; ++i) {
+ if (name && strcmp(backends[i].name, name))
+ continue;
+
+ dev = backends[i].backend->create_device(fd);
}
return dev;
@@ -65,20 +65,15 @@ find_backend(const char *name, int fd)
struct gbm_device *
_gbm_create_device(int fd)
{
- const struct backend_desc *backend = NULL;
struct gbm_device *dev = NULL;
- unsigned i;
const char *b;
b = getenv("GBM_BACKEND");
if (b)
dev = find_backend(b, fd);
- for (i = 0; i < ARRAY_SIZE(backends) && dev == NULL; ++i) {
- backend = &backends[i];
+ if (!dev)
+ dev = find_backend(NULL, fd);
- dev = backend->backend->create_device(fd);
- }
-
return dev;
}