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

Commit 46e19eb8 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 4498106 from cc3b9135 to pi-release

Change-Id: Ic2a51e7312159a2b7ec580d33161667c4ceb06f4
parents 3112d2af cc3b9135
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ hidl_interface {
        "android.hidl.base@1.0",
    ],
    types: [
        "IdentifierType",
    ],
    gen_java: false,
}
+1 −1
Original line number Diff line number Diff line
@@ -281,11 +281,11 @@ int Contexthub::handleOsMessage(sp<IContexthubCallback> cb,
                result = TransactionResult::FAILURE;
            }

            mIsTransactionPending = false;
            if (cb != nullptr) {
                cb->handleTxnResult(mTransactionId, result);
            }
            retVal = 0;
            mIsTransactionPending = false;
            break;
        }

+0 −2
Original line number Diff line number Diff line
@@ -16,12 +16,10 @@ hidl_interface {
    ],
    types: [
        "HardwareAuthToken",
        "HardwareAuthTokenMacMethod",
        "KeyCharacteristics",
        "KeyParameter",
        "KeyPurpose",
        "Tag",
        "TagType",
    ],
    gen_java: false,
}
+2 −2
Original line number Diff line number Diff line
@@ -7,9 +7,9 @@ hidl_interface {
        "IMemoryTest.hal",
    ],
    interfaces: [
        "android.hidl.memory.token@1.0",
        "android.hidl.memory.block@1.0",
        "android.hidl.base@1.0",
        "android.hidl.memory.block@1.0",
        "android.hidl.memory.token@1.0",
    ],
    gen_java: false,
}
+22 −11
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ namespace wifi {
namespace V1_2 {
namespace implementation {
using hidl_return_util::validateAndCall;
using hidl_return_util::validateAndCallWithLock;

WifiChip::WifiChip(
    ChipId chip_id, const std::weak_ptr<legacy_hal::WifiLegacyHal> legacy_hal,
@@ -121,9 +122,9 @@ Return<void> WifiChip::getAvailableModes(getAvailableModes_cb hidl_status_cb) {

Return<void> WifiChip::configureChip(ChipModeId mode_id,
                                     configureChip_cb hidl_status_cb) {
    return validateAndCall(this, WifiStatusCode::ERROR_WIFI_CHIP_INVALID,
                           &WifiChip::configureChipInternal, hidl_status_cb,
                           mode_id);
    return validateAndCallWithLock(
        this, WifiStatusCode::ERROR_WIFI_CHIP_INVALID,
        &WifiChip::configureChipInternal, hidl_status_cb, mode_id);
}

Return<void> WifiChip::getMode(getMode_cb hidl_status_cb) {
@@ -397,7 +398,9 @@ WifiChip::getAvailableModesInternal() {
            {sta_chip_mode, ap_chip_mode}};
}

WifiStatus WifiChip::configureChipInternal(ChipModeId mode_id) {
WifiStatus WifiChip::configureChipInternal(
    /* NONNULL */ std::unique_lock<std::recursive_mutex>* lock,
    ChipModeId mode_id) {
    if (mode_id != kStaChipModeId && mode_id != kApChipModeId) {
        return createWifiStatus(WifiStatusCode::ERROR_INVALID_ARGS);
    }
@@ -405,7 +408,7 @@ WifiStatus WifiChip::configureChipInternal(ChipModeId mode_id) {
        LOG(DEBUG) << "Already in the specified mode " << mode_id;
        return createWifiStatus(WifiStatusCode::SUCCESS);
    }
    WifiStatus status = handleChipConfiguration(mode_id);
    WifiStatus status = handleChipConfiguration(lock, mode_id);
    if (status.code != WifiStatusCode::SUCCESS) {
        for (const auto& callback : event_cb_handler_.getCallbacks()) {
            if (!callback->onChipReconfigureFailure(status).isOk()) {
@@ -421,6 +424,7 @@ WifiStatus WifiChip::configureChipInternal(ChipModeId mode_id) {
        }
    }
    current_mode_id_ = mode_id;
    LOG(INFO) << "Configured chip in mode " << mode_id;
    return status;
}

@@ -792,15 +796,22 @@ WifiStatus WifiChip::resetTxPowerScenarioInternal() {
    return createWifiStatusFromLegacyError(legacy_status);
}

WifiStatus WifiChip::handleChipConfiguration(ChipModeId mode_id) {
WifiStatus WifiChip::handleChipConfiguration(
    /* NONNULL */ std::unique_lock<std::recursive_mutex>* lock,
    ChipModeId mode_id) {
    // If the chip is already configured in a different mode, stop
    // the legacy HAL and then start it after firmware mode change.
    // Currently the underlying implementation has a deadlock issue.
    // We should return ERROR_NOT_SUPPORTED if chip is already configured in
    // a different mode.
    if (current_mode_id_ != kInvalidModeId) {
        // TODO(b/37446050): Fix the deadlock.
        return createWifiStatus(WifiStatusCode::ERROR_NOT_SUPPORTED);
        LOG(INFO) << "Reconfiguring chip from mode " << current_mode_id_
                  << " to mode " << mode_id;
        invalidateAndRemoveAllIfaces();
        legacy_hal::wifi_error legacy_status =
            legacy_hal_.lock()->stop(lock, []() {});
        if (legacy_status != legacy_hal::WIFI_SUCCESS) {
            LOG(ERROR) << "Failed to stop legacy HAL: "
                       << legacyErrorToString(legacy_status);
            return createWifiStatusFromLegacyError(legacy_status);
        }
    }
    bool success;
    if (mode_id == kStaChipModeId) {
Loading