diff options
author | James Jones <jajones@nvidia.com> | 2019-12-13 16:20:02 -0800 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-07-06 16:57:59 +0000 |
commit | af1f517ab9fae0a8dee7c17b2fc1beccc30a1c3c (patch) | |
tree | b4f0caca58094e0efcff8b621ea4997614feca70 | |
parent | 00b2a45edf69833c4dcc6726e6b3e155ec6cc077 (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.c | 19 |
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; } |