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

Commit 87592de6 authored by James Mattis's avatar James Mattis Committed by Android (Google) Code Review
Browse files

Merge "Fix so that dual access points (AP) works." into qt-dev

parents 4ae7dd19 d2e4c074
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -1463,6 +1463,13 @@ bool WifiChip::isStaApConcurrencyAllowedInCurrentMode() {
    return canCurrentModeSupportIfaceCombo(req_iface_combo);
}

bool WifiChip::isDualApAllowedInCurrentMode() {
    // Check if we can support atleast 1 STA & 1 AP concurrently.
    std::map<IfaceType, size_t> req_iface_combo;
    req_iface_combo[IfaceType::AP] = 2;
    return canCurrentModeSupportIfaceCombo(req_iface_combo);
}

std::string WifiChip::getFirstActiveWlanIfaceName() {
    if (sta_ifaces_.size() > 0) return sta_ifaces_[0]->getName();
    if (ap_ifaces_.size() > 0) return ap_ifaces_[0]->getName();
@@ -1488,10 +1495,12 @@ std::string WifiChip::allocateApOrStaIfaceName(uint32_t start_idx) {
}

// AP iface names start with idx 1 for modes supporting
// concurrent STA, else start with idx 0.
// concurrent STA and not dual AP, else start with idx 0.
std::string WifiChip::allocateApIfaceName() {
    return allocateApOrStaIfaceName(
        isStaApConcurrencyAllowedInCurrentMode() ? 1 : 0);
    return allocateApOrStaIfaceName((isStaApConcurrencyAllowedInCurrentMode() &&
                                     !isDualApAllowedInCurrentMode())
                                        ? 1
                                        : 0);
}

// STA iface names start with idx 0.
+1 −0
Original line number Diff line number Diff line
@@ -240,6 +240,7 @@ class WifiChip : public V1_3::IWifiChip {
    bool canCurrentModeSupportIfaceOfType(IfaceType requested_type);
    bool isValidModeId(ChipModeId mode_id);
    bool isStaApConcurrencyAllowedInCurrentMode();
    bool isDualApAllowedInCurrentMode();
    std::string getFirstActiveWlanIfaceName();
    std::string allocateApOrStaIfaceName(uint32_t start_idx);
    std::string allocateApIfaceName();