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

Commit ad504560 authored by Connor O'Brien's avatar Connor O'Brien Committed by Android (Google) Code Review
Browse files

Merge "Fix failure to load power HAL implementation" into oc-dev

parents 7147f8f5 27afb47f
Loading
Loading
Loading
Loading
+18 −16
Original line number Diff line number Diff line
@@ -145,26 +145,28 @@ done:
}

IPower* HIDL_FETCH_IPower(const char* /* name */) {
    int ret = 0;
    const hw_module_t* hw_module = NULL;
    power_module_t *power_module;
    ret = hw_get_module(POWER_HARDWARE_MODULE_ID, &hw_module);
    if (ret == 0 && hw_module->methods->open) {
        ret = hw_module->methods->open(hw_module, POWER_HARDWARE_MODULE_ID,
                reinterpret_cast<hw_device_t**>(&power_module));
        if (ret == 0) {
            return new Power(power_module);
        }
        else {
            ALOGE("Passthrough failed to load legacy power HAL.");
    const hw_module_t* hw_module = nullptr;
    power_module_t* power_module = nullptr;
    int err = hw_get_module(POWER_HARDWARE_MODULE_ID, &hw_module);
    if (err) {
        ALOGE("hw_get_module %s failed: %d", POWER_HARDWARE_MODULE_ID, err);
        return nullptr;
    }
    }
    else {
        ALOGE ("hw_get_module %s failed: %d", POWER_HARDWARE_MODULE_ID, ret);

    if (!hw_module->methods || !hw_module->methods->open) {
        power_module = reinterpret_cast<power_module_t*>(
            const_cast<hw_module_t*>(hw_module));
    } else {
        err = hw_module->methods->open(
            hw_module, POWER_HARDWARE_MODULE_ID,
            reinterpret_cast<hw_device_t**>(&power_module));
        if (err) {
            ALOGE("Passthrough failed to load legacy HAL.");
            return nullptr;
        }
    }
    return new Power(power_module);
}

} // namespace implementation
}  // namespace V1_0