Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5fa47117 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Only use the first available suffix value when loading drivers." into...

Merge "Only use the first available suffix value when loading drivers." into udc-qpr-dev am: ed6c97e5

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/23678855



Change-Id: I8a8fcae1a61425a8fb5b9dbce913a48de9cbc396
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 85b58077 ed6c97e5
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -137,12 +137,14 @@ static void* load_wrapper(const char* path) {
#endif
#endif

static const char* DRIVER_SUFFIX_PROPERTY = "ro.hardware.egl";
static const char* PERSIST_DRIVER_SUFFIX_PROPERTY = "persist.graphics.egl";
static const char* RO_DRIVER_SUFFIX_PROPERTY = "ro.hardware.egl";
static const char* RO_BOARD_PLATFORM_PROPERTY = "ro.board.platform";

static const char* HAL_SUBNAME_KEY_PROPERTIES[3] = {
        "persist.graphics.egl",
        DRIVER_SUFFIX_PROPERTY,
        "ro.board.platform",
        PERSIST_DRIVER_SUFFIX_PROPERTY,
        RO_DRIVER_SUFFIX_PROPERTY,
        RO_BOARD_PLATFORM_PROPERTY,
};

static bool should_unload_system_driver(egl_connection_t* cnx) {
@@ -245,17 +247,20 @@ void* Loader::open(egl_connection_t* cnx)
                continue;
            }
            hnd = attempt_to_load_system_driver(cnx, prop.c_str(), true);
            if (hnd) {
                break;
            } else if (strcmp(key, DRIVER_SUFFIX_PROPERTY) == 0) {
            if (!hnd) {
                ALOGD("Failed to load drivers from property %s with value %s", key, prop.c_str());
                failToLoadFromDriverSuffixProperty = true;
            }

            // Abort regardless of whether subsequent properties are set, the value must be set
            // correctly with the first property that has a value.
            break;
        }
    }

    if (!hnd) {
        // Can't find graphics driver by appending system properties, now search for the exact name
        // without any suffix of the GLES userspace driver in both locations.
        // Can't find graphics driver by appending the value from system properties, now search for
        // the exact name without any suffix of the GLES userspace driver in both locations.
        // i.e.:
        //      libGLES.so, or:
        //      libEGL.so, libGLESv1_CM.so, libGLESv2.so