From: Emil Velikov <emil.veli...@collabora.com> Currently droid_probe_device, does not do any 'probing' but filtering out a device if it doesn't match the vendor string given.
Rename the function, straighten the return type and call it only as needed - an actual vendor string is provided. Cc: Robert Foss <robert.f...@collabora.com> Cc: Tomasz Figa <tf...@chromium.org> Signed-off-by: Emil Velikov <emil.veli...@collabora.com> --- src/egl/drivers/dri2/platform_android.c | 52 +++++++++---------------- 1 file changed, 18 insertions(+), 34 deletions(-) diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c index 02bb0b55f03..ad160d6886f 100644 --- a/src/egl/drivers/dri2/platform_android.c +++ b/src/egl/drivers/dri2/platform_android.c @@ -1236,31 +1236,20 @@ error: return false; } -typedef enum { - probe_fail = -1, - probe_success = 0, - probe_filtered_out = 1, -} probe_ret_t; - -static probe_ret_t -droid_probe_device(_EGLDisplay *disp, int fd, const char *vendor) +static int +droid_filter_device(_EGLDisplay *disp, int fd, const char *vendor) { - int ret; - drmVersionPtr ver = drmGetVersion(fd); if (!ver) - return probe_fail; + return -1; - if (vendor && strcmp(vendor, ver->name) != 0) { - ret = probe_filtered_out; - goto cleanup; + if (strcmp(vendor, ver->name) != 0) { + drmFreeVersion(ver); + return -1; } - ret = probe_success; - -cleanup: drmFreeVersion(ver); - return ret; + return 0; } static int @@ -1294,25 +1283,20 @@ droid_open_device(_EGLDisplay *disp) continue; } - int ret = droid_probe_device(disp, fd, vendor_name); - switch (ret) { - case probe_success: - goto success; - case probe_filtered_out: - /* Set as fallback */ - if (fallback_fd == -1) + if (vendor_name && droid_filter_device(disp, fd, vendor_name)) { + /* Match requested, but not found - set as fallback */ + if (fallback_fd == -1) { fallback_fd = fd; - break; - case probe_fail: - break; - } + } else { + close(fd); + fd = -1; + } - if (fallback_fd != fd) - close(fd); - fd = -1; + continue; + } + /* Found a device */ + break; } - -success: drmFreeDevices(devices, num_devices); if (fallback_fd < 0 && fd < 0) { -- 2.18.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev