Loading tv/tuner/1.1/vts/functional/FrontendTests.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -379,7 +379,7 @@ void FrontendTests::verifyFrontendStatusExt1_1(vector<FrontendStatusTypeExt1_1> break; } case FrontendStatusTypeExt1_1::UEC: { ASSERT_TRUE(realStatuses[i].uec() == expectStatuses[i].uec()); ASSERT_TRUE(realStatuses[i].uec() >= 0 ); break; } case FrontendStatusTypeExt1_1::T2_SYSTEM_ID: { Loading tv/tuner/1.1/vts/functional/VtsHalTvTunerV1_1TestConfigurations.h +1 −1 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ inline void initFrontendConfig() { types.push_back(FrontendStatusTypeExt1_1::IS_MISO); vector<FrontendStatusExt1_1> statuses; FrontendStatusExt1_1 status; status.uec(4); status.uec(0); statuses.push_back(status); status.isMiso(true); statuses.push_back(status); Loading wifi/aidl/default/wifi_chip.cpp +19 −13 Original line number Diff line number Diff line Loading @@ -975,14 +975,14 @@ WifiChip::createBridgedApIfaceInternal() { br_ifaces_ap_instances_[br_ifname] = ap_instances; if (!iface_util_->createBridge(br_ifname)) { LOG(ERROR) << "Failed createBridge - br_name=" << br_ifname.c_str(); invalidateAndClearBridgedAp(br_ifname); deleteApIface(br_ifname); return {nullptr, createWifiStatus(WifiStatusCode::ERROR_NOT_AVAILABLE)}; } for (auto const& instance : ap_instances) { // Bind ap instance interface to AP bridge if (!iface_util_->addIfaceToBridge(br_ifname, instance)) { LOG(ERROR) << "Failed add if to Bridge - if_name=" << instance.c_str(); invalidateAndClearBridgedAp(br_ifname); deleteApIface(br_ifname); return {nullptr, createWifiStatus(WifiStatusCode::ERROR_NOT_AVAILABLE)}; } } Loading Loading @@ -1016,8 +1016,7 @@ ndk::ScopedAStatus WifiChip::removeApIfaceInternal(const std::string& ifname) { // nan/rtt objects over AP iface. But, there is no harm to do it // here and not make that assumption all over the place. invalidateAndRemoveDependencies(ifname); // Clear the bridge interface and the iface instance. invalidateAndClearBridgedAp(ifname); deleteApIface(ifname); invalidateAndClear(ap_ifaces_, iface); for (const auto& callback : event_cb_handler_.getCallbacks()) { if (!callback->onIfaceRemoved(IfaceType::AP, ifname).isOk()) { Loading Loading @@ -1960,21 +1959,28 @@ void WifiChip::invalidateAndClearBridgedApAll() { br_ifaces_ap_instances_.clear(); } void WifiChip::invalidateAndClearBridgedAp(const std::string& br_name) { if (br_name.empty()) return; // delete managed interfaces void WifiChip::deleteApIface(const std::string& if_name) { if (if_name.empty()) return; // delete bridged interfaces if any for (auto const& it : br_ifaces_ap_instances_) { if (it.first == br_name) { if (it.first == if_name) { for (auto const& iface : it.second) { iface_util_->removeIfaceFromBridge(br_name, iface); iface_util_->removeIfaceFromBridge(if_name, iface); legacy_hal_.lock()->deleteVirtualInterface(iface); } iface_util_->deleteBridge(br_name); br_ifaces_ap_instances_.erase(br_name); break; iface_util_->deleteBridge(if_name); br_ifaces_ap_instances_.erase(if_name); // ifname is bridged AP, return here. return; } } return; // No bridged AP case, delete AP iface legacy_hal::wifi_error legacy_status = legacy_hal_.lock()->deleteVirtualInterface(if_name); if (legacy_status != legacy_hal::WIFI_SUCCESS) { LOG(ERROR) << "Failed to remove interface: " << if_name << " " << legacyErrorToString(legacy_status); } } bool WifiChip::findUsingNameFromBridgedApInstances(const std::string& name) { Loading wifi/aidl/default/wifi_chip.h +1 −1 Original line number Diff line number Diff line Loading @@ -253,7 +253,7 @@ class WifiChip : public BnWifiChip { bool writeRingbufferFilesInternal(); std::string getWlanIfaceNameWithType(IfaceType type, unsigned idx); void invalidateAndClearBridgedApAll(); void invalidateAndClearBridgedAp(const std::string& br_name); void deleteApIface(const std::string& if_name); bool findUsingNameFromBridgedApInstances(const std::string& name); ndk::ScopedAStatus triggerSubsystemRestartInternal(); std::pair<std::vector<WifiRadioCombination>, ndk::ScopedAStatus> Loading Loading
tv/tuner/1.1/vts/functional/FrontendTests.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -379,7 +379,7 @@ void FrontendTests::verifyFrontendStatusExt1_1(vector<FrontendStatusTypeExt1_1> break; } case FrontendStatusTypeExt1_1::UEC: { ASSERT_TRUE(realStatuses[i].uec() == expectStatuses[i].uec()); ASSERT_TRUE(realStatuses[i].uec() >= 0 ); break; } case FrontendStatusTypeExt1_1::T2_SYSTEM_ID: { Loading
tv/tuner/1.1/vts/functional/VtsHalTvTunerV1_1TestConfigurations.h +1 −1 Original line number Diff line number Diff line Loading @@ -86,7 +86,7 @@ inline void initFrontendConfig() { types.push_back(FrontendStatusTypeExt1_1::IS_MISO); vector<FrontendStatusExt1_1> statuses; FrontendStatusExt1_1 status; status.uec(4); status.uec(0); statuses.push_back(status); status.isMiso(true); statuses.push_back(status); Loading
wifi/aidl/default/wifi_chip.cpp +19 −13 Original line number Diff line number Diff line Loading @@ -975,14 +975,14 @@ WifiChip::createBridgedApIfaceInternal() { br_ifaces_ap_instances_[br_ifname] = ap_instances; if (!iface_util_->createBridge(br_ifname)) { LOG(ERROR) << "Failed createBridge - br_name=" << br_ifname.c_str(); invalidateAndClearBridgedAp(br_ifname); deleteApIface(br_ifname); return {nullptr, createWifiStatus(WifiStatusCode::ERROR_NOT_AVAILABLE)}; } for (auto const& instance : ap_instances) { // Bind ap instance interface to AP bridge if (!iface_util_->addIfaceToBridge(br_ifname, instance)) { LOG(ERROR) << "Failed add if to Bridge - if_name=" << instance.c_str(); invalidateAndClearBridgedAp(br_ifname); deleteApIface(br_ifname); return {nullptr, createWifiStatus(WifiStatusCode::ERROR_NOT_AVAILABLE)}; } } Loading Loading @@ -1016,8 +1016,7 @@ ndk::ScopedAStatus WifiChip::removeApIfaceInternal(const std::string& ifname) { // nan/rtt objects over AP iface. But, there is no harm to do it // here and not make that assumption all over the place. invalidateAndRemoveDependencies(ifname); // Clear the bridge interface and the iface instance. invalidateAndClearBridgedAp(ifname); deleteApIface(ifname); invalidateAndClear(ap_ifaces_, iface); for (const auto& callback : event_cb_handler_.getCallbacks()) { if (!callback->onIfaceRemoved(IfaceType::AP, ifname).isOk()) { Loading Loading @@ -1960,21 +1959,28 @@ void WifiChip::invalidateAndClearBridgedApAll() { br_ifaces_ap_instances_.clear(); } void WifiChip::invalidateAndClearBridgedAp(const std::string& br_name) { if (br_name.empty()) return; // delete managed interfaces void WifiChip::deleteApIface(const std::string& if_name) { if (if_name.empty()) return; // delete bridged interfaces if any for (auto const& it : br_ifaces_ap_instances_) { if (it.first == br_name) { if (it.first == if_name) { for (auto const& iface : it.second) { iface_util_->removeIfaceFromBridge(br_name, iface); iface_util_->removeIfaceFromBridge(if_name, iface); legacy_hal_.lock()->deleteVirtualInterface(iface); } iface_util_->deleteBridge(br_name); br_ifaces_ap_instances_.erase(br_name); break; iface_util_->deleteBridge(if_name); br_ifaces_ap_instances_.erase(if_name); // ifname is bridged AP, return here. return; } } return; // No bridged AP case, delete AP iface legacy_hal::wifi_error legacy_status = legacy_hal_.lock()->deleteVirtualInterface(if_name); if (legacy_status != legacy_hal::WIFI_SUCCESS) { LOG(ERROR) << "Failed to remove interface: " << if_name << " " << legacyErrorToString(legacy_status); } } bool WifiChip::findUsingNameFromBridgedApInstances(const std::string& name) { Loading
wifi/aidl/default/wifi_chip.h +1 −1 Original line number Diff line number Diff line Loading @@ -253,7 +253,7 @@ class WifiChip : public BnWifiChip { bool writeRingbufferFilesInternal(); std::string getWlanIfaceNameWithType(IfaceType type, unsigned idx); void invalidateAndClearBridgedApAll(); void invalidateAndClearBridgedAp(const std::string& br_name); void deleteApIface(const std::string& if_name); bool findUsingNameFromBridgedApInstances(const std::string& name); ndk::ScopedAStatus triggerSubsystemRestartInternal(); std::pair<std::vector<WifiRadioCombination>, ndk::ScopedAStatus> Loading