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

Commit 66135e54 authored by Ahmed ElArabawy's avatar Ahmed ElArabawy Committed by Android (Google) Code Review
Browse files

Merge "Wifi: Add 6GHz bands to WifiBand"

parents 9ee9aa05 fd809fcd
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -11,6 +11,7 @@ hidl_interface {
        "IWifi.hal",
        "IWifi.hal",
        "IWifiApIface.hal",
        "IWifiApIface.hal",
        "IWifiChip.hal",
        "IWifiChip.hal",
        "IWifiChipEventCallback.hal",
        "IWifiRttController.hal",
        "IWifiRttController.hal",
        "IWifiRttControllerEventCallback.hal",
        "IWifiRttControllerEventCallback.hal",
        "IWifiStaIface.hal",
        "IWifiStaIface.hal",
+17 −0
Original line number Original line Diff line number Diff line
@@ -19,12 +19,29 @@ package android.hardware.wifi@1.4;
import @1.0::WifiStatus;
import @1.0::WifiStatus;
import @1.0::IWifiIface;
import @1.0::IWifiIface;
import @1.3::IWifiChip;
import @1.3::IWifiChip;
import IWifiChipEventCallback;
import IWifiRttController;
import IWifiRttController;


/**
/**
 * Interface that represents a chip that must be configured as a single unit.
 * Interface that represents a chip that must be configured as a single unit.
 */
 */
interface IWifiChip extends @1.3::IWifiChip {
interface IWifiChip extends @1.3::IWifiChip {
    /**
     * Requests notifications of significant events on this chip. Multiple calls
     * to this must register multiple callbacks each of which must receive all
     * events.
     *
     * @param callback An instance of the |IWifiChipEventCallback| HIDL interface
     *        object.
     * @return status WifiStatus of the operation.
     *         Possible status codes:
     *         |WifiStatusCode.SUCCESS|,
     *         |WifiStatusCode.ERROR_NOT_SUPPORTED|,
     *         |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|
     */
    registerEventCallback_1_4(IWifiChipEventCallback callback)
        generates (WifiStatus status);

    /**
    /**
     * Create a RTTController instance.
     * Create a RTTController instance.
     *
     *
+65 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.hardware.wifi@1.4;

import @1.2::IWifiChipEventCallback;
import WifiBand;

/**
 * Wifi chip event callbacks.
 */
interface IWifiChipEventCallback extends @1.2::IWifiChipEventCallback {
    /**
     * Struct describing the state of each hardware radio chain (hardware MAC)
     * on the device.
     */
    struct RadioModeInfo {
        /**
         * Identifier for this radio chain. This is vendor dependent & used
         * only for debugging purposes.
         */
        uint32_t radioId;
        /**
         * List of bands on which this radio chain is operating.
         * Can be one of:
         * a) WifiBand.BAND_24GHZ => 2.4Ghz.
         * b) WifiBand.BAND_5GHZ => 5Ghz.
         * c) WifiBand.BAND_24GHZ_5GHZ = 2.4Ghz + 5Ghz (Radio is time sharing
         * across the 2 bands).
         * d) WifiBand.BAND_6GHZ => 6Ghz.
         * e) WifiBand.BAND_5GHZ_6GHZ => 5Ghz + 6Ghz (Radio is time sharing
         * across the 2 bands).
         * f) WifiBand.BAND_24GHZ_5GHZ_6GHZ => 2.4Ghz + 5Ghz + 6Ghz (Radio is
         * time sharing across the 3 bands).
         */
        WifiBand bandInfo;
        /** List of interfaces on this radio chain (hardware MAC). */
        vec<IfaceInfo> ifaceInfos;
    };

    /**
     * Asynchronous callback indicating a radio mode change.
     * Radio mode change could be a result of:
     * a) Bringing up concurrent interfaces (For ex: STA + AP).
     * b) Change in operating band of one of the concurrent interfaces (For ex:
     * STA connection moved from 2.4G to 5G)
     *
     * @param radioModeInfos List of RadioModeInfo structures for each
     * radio chain (hardware MAC) on the device.
     */
    oneway onRadioModeChange_1_4(vec<RadioModeInfo> radioModeInfos);
};
+22 −14
Original line number Original line Diff line number Diff line
@@ -316,7 +316,7 @@ legacy_hal::wifi_latency_mode convertHidlLatencyModeToLegacy(


bool convertLegacyWifiMacInfoToHidl(
bool convertLegacyWifiMacInfoToHidl(
    const legacy_hal::WifiMacInfo& legacy_mac_info,
    const legacy_hal::WifiMacInfo& legacy_mac_info,
    V1_2::IWifiChipEventCallback::RadioModeInfo* hidl_radio_mode_info) {
    IWifiChipEventCallback::RadioModeInfo* hidl_radio_mode_info) {
    if (!hidl_radio_mode_info) {
    if (!hidl_radio_mode_info) {
        return false;
        return false;
    }
    }
@@ -325,7 +325,16 @@ bool convertLegacyWifiMacInfoToHidl(
    hidl_radio_mode_info->radioId = legacy_mac_info.wlan_mac_id;
    hidl_radio_mode_info->radioId = legacy_mac_info.wlan_mac_id;
    // Convert from bitmask of bands in the legacy HAL to enum value in
    // Convert from bitmask of bands in the legacy HAL to enum value in
    // the HIDL interface.
    // the HIDL interface.
    if (legacy_mac_info.mac_band & legacy_hal::WLAN_MAC_2_4_BAND &&
    if (legacy_mac_info.mac_band & legacy_hal::WLAN_MAC_6_0_BAND &&
        legacy_mac_info.mac_band & legacy_hal::WLAN_MAC_5_0_BAND &&
        legacy_mac_info.mac_band & legacy_hal::WLAN_MAC_2_4_BAND) {
        hidl_radio_mode_info->bandInfo = WifiBand::BAND_24GHZ_5GHZ_6GHZ;
    } else if (legacy_mac_info.mac_band & legacy_hal::WLAN_MAC_6_0_BAND &&
               legacy_mac_info.mac_band & legacy_hal::WLAN_MAC_5_0_BAND) {
        hidl_radio_mode_info->bandInfo = WifiBand::BAND_5GHZ_6GHZ;
    } else if (legacy_mac_info.mac_band & legacy_hal::WLAN_MAC_6_0_BAND) {
        hidl_radio_mode_info->bandInfo = WifiBand::BAND_6GHZ;
    } else if (legacy_mac_info.mac_band & legacy_hal::WLAN_MAC_2_4_BAND &&
               legacy_mac_info.mac_band & legacy_hal::WLAN_MAC_5_0_BAND) {
               legacy_mac_info.mac_band & legacy_hal::WLAN_MAC_5_0_BAND) {
        hidl_radio_mode_info->bandInfo = WifiBand::BAND_24GHZ_5GHZ;
        hidl_radio_mode_info->bandInfo = WifiBand::BAND_24GHZ_5GHZ;
    } else if (legacy_mac_info.mac_band & legacy_hal::WLAN_MAC_2_4_BAND) {
    } else if (legacy_mac_info.mac_band & legacy_hal::WLAN_MAC_2_4_BAND) {
@@ -348,15 +357,14 @@ bool convertLegacyWifiMacInfoToHidl(


bool convertLegacyWifiMacInfosToHidl(
bool convertLegacyWifiMacInfosToHidl(
    const std::vector<legacy_hal::WifiMacInfo>& legacy_mac_infos,
    const std::vector<legacy_hal::WifiMacInfo>& legacy_mac_infos,
    std::vector<V1_2::IWifiChipEventCallback::RadioModeInfo>*
    std::vector<IWifiChipEventCallback::RadioModeInfo>* hidl_radio_mode_infos) {
        hidl_radio_mode_infos) {
    if (!hidl_radio_mode_infos) {
    if (!hidl_radio_mode_infos) {
        return false;
        return false;
    }
    }
    *hidl_radio_mode_infos = {};
    *hidl_radio_mode_infos = {};


    for (const auto& legacy_mac_info : legacy_mac_infos) {
    for (const auto& legacy_mac_info : legacy_mac_infos) {
        V1_2::IWifiChipEventCallback::RadioModeInfo hidl_radio_mode_info;
        IWifiChipEventCallback::RadioModeInfo hidl_radio_mode_info;
        if (!convertLegacyWifiMacInfoToHidl(legacy_mac_info,
        if (!convertLegacyWifiMacInfoToHidl(legacy_mac_info,
                                            &hidl_radio_mode_info)) {
                                            &hidl_radio_mode_info)) {
            return false;
            return false;
@@ -449,21 +457,21 @@ bool convertLegacyGscanCapabilitiesToHidl(
    return true;
    return true;
}
}


legacy_hal::wifi_band convertHidlWifiBandToLegacy(WifiBand band) {
legacy_hal::wifi_band convertHidlWifiBandToLegacy(V1_0::WifiBand band) {
    switch (band) {
    switch (band) {
        case WifiBand::BAND_UNSPECIFIED:
        case V1_0::WifiBand::BAND_UNSPECIFIED:
            return legacy_hal::WIFI_BAND_UNSPECIFIED;
            return legacy_hal::WIFI_BAND_UNSPECIFIED;
        case WifiBand::BAND_24GHZ:
        case V1_0::WifiBand::BAND_24GHZ:
            return legacy_hal::WIFI_BAND_BG;
            return legacy_hal::WIFI_BAND_BG;
        case WifiBand::BAND_5GHZ:
        case V1_0::WifiBand::BAND_5GHZ:
            return legacy_hal::WIFI_BAND_A;
            return legacy_hal::WIFI_BAND_A;
        case WifiBand::BAND_5GHZ_DFS:
        case V1_0::WifiBand::BAND_5GHZ_DFS:
            return legacy_hal::WIFI_BAND_A_DFS;
            return legacy_hal::WIFI_BAND_A_DFS;
        case WifiBand::BAND_5GHZ_WITH_DFS:
        case V1_0::WifiBand::BAND_5GHZ_WITH_DFS:
            return legacy_hal::WIFI_BAND_A_WITH_DFS;
            return legacy_hal::WIFI_BAND_A_WITH_DFS;
        case WifiBand::BAND_24GHZ_5GHZ:
        case V1_0::WifiBand::BAND_24GHZ_5GHZ:
            return legacy_hal::WIFI_BAND_ABG;
            return legacy_hal::WIFI_BAND_ABG;
        case WifiBand::BAND_24GHZ_5GHZ_WITH_DFS:
        case V1_0::WifiBand::BAND_24GHZ_5GHZ_WITH_DFS:
            return legacy_hal::WIFI_BAND_ABG_WITH_DFS;
            return legacy_hal::WIFI_BAND_ABG_WITH_DFS;
    };
    };
    CHECK(false);
    CHECK(false);
+3 −4
Original line number Original line Diff line number Diff line
@@ -21,10 +21,10 @@


#include <android/hardware/wifi/1.0/IWifiChip.h>
#include <android/hardware/wifi/1.0/IWifiChip.h>
#include <android/hardware/wifi/1.0/types.h>
#include <android/hardware/wifi/1.0/types.h>
#include <android/hardware/wifi/1.2/IWifiChipEventCallback.h>
#include <android/hardware/wifi/1.2/types.h>
#include <android/hardware/wifi/1.2/types.h>
#include <android/hardware/wifi/1.3/IWifiChip.h>
#include <android/hardware/wifi/1.3/IWifiChip.h>
#include <android/hardware/wifi/1.3/types.h>
#include <android/hardware/wifi/1.3/types.h>
#include <android/hardware/wifi/1.4/IWifiChipEventCallback.h>
#include <android/hardware/wifi/1.4/IWifiStaIface.h>
#include <android/hardware/wifi/1.4/IWifiStaIface.h>
#include <android/hardware/wifi/1.4/types.h>
#include <android/hardware/wifi/1.4/types.h>


@@ -65,8 +65,7 @@ legacy_hal::wifi_power_scenario convertHidlTxPowerScenarioToLegacy_1_2(
    V1_2::IWifiChip::TxPowerScenario hidl_scenario);
    V1_2::IWifiChip::TxPowerScenario hidl_scenario);
bool convertLegacyWifiMacInfosToHidl(
bool convertLegacyWifiMacInfosToHidl(
    const std::vector<legacy_hal::WifiMacInfo>& legacy_mac_infos,
    const std::vector<legacy_hal::WifiMacInfo>& legacy_mac_infos,
    std::vector<V1_2::IWifiChipEventCallback::RadioModeInfo>*
    std::vector<IWifiChipEventCallback::RadioModeInfo>* hidl_radio_mode_infos);
        hidl_radio_mode_infos);


// STA iface conversion methods.
// STA iface conversion methods.
bool convertLegacyFeaturesToHidlStaCapabilities(
bool convertLegacyFeaturesToHidlStaCapabilities(
@@ -78,7 +77,7 @@ bool convertLegacyApfCapabilitiesToHidl(
bool convertLegacyGscanCapabilitiesToHidl(
bool convertLegacyGscanCapabilitiesToHidl(
    const legacy_hal::wifi_gscan_capabilities& legacy_caps,
    const legacy_hal::wifi_gscan_capabilities& legacy_caps,
    StaBackgroundScanCapabilities* hidl_caps);
    StaBackgroundScanCapabilities* hidl_caps);
legacy_hal::wifi_band convertHidlWifiBandToLegacy(WifiBand band);
legacy_hal::wifi_band convertHidlWifiBandToLegacy(V1_0::WifiBand band);
bool convertHidlGscanParamsToLegacy(
bool convertHidlGscanParamsToLegacy(
    const StaBackgroundScanParameters& hidl_scan_params,
    const StaBackgroundScanParameters& hidl_scan_params,
    legacy_hal::wifi_scan_cmd_params* legacy_scan_params);
    legacy_hal::wifi_scan_cmd_params* legacy_scan_params);
Loading