Loading wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChip.aidl +8 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ interface IWifiChip { void stopLoggingToDebugRingBuffer(); void triggerSubsystemRestart(); void enableStaChannelForPeerNetwork(in android.hardware.wifi.IWifiChip.ChannelCategoryMask channelCategoryEnableFlag); void setMloMode(in android.hardware.wifi.IWifiChip.ChipMloMode mode); const int NO_POWER_CAP_CONSTANT = 0x7FFFFFFF; @Backing(type="int") @VintfStability enum ChipCapabilityMask { Loading Loading @@ -164,4 +165,11 @@ interface IWifiChip { INDOOR_CHANNEL = (1 << 0) /* 1 */, DFS_CHANNEL = (1 << 1) /* 2 */, } @Backing(type="int") @VintfStability enum ChipMloMode { DEFAULT = 0, LOW_LATENCY = 1, HIGH_THROUGHPUT = 2, LOW_POWER = 3, } } wifi/aidl/android/hardware/wifi/IWifiChip.aidl +36 −0 Original line number Diff line number Diff line Loading @@ -1119,4 +1119,40 @@ interface IWifiChip { * |WifiStatusCode.FAILURE_UNKNOWN| */ void enableStaChannelForPeerNetwork(in ChannelCategoryMask channelCategoryEnableFlag); /** * Multi-Link Operation modes. */ @VintfStability @Backing(type="int") enum ChipMloMode { /** * Default mode for Multi-Link Operation. */ DEFAULT = 0, /** * Low latency mode for Multi-link operation. */ LOW_LATENCY = 1, /** * High throughput mode for Multi-link operation. */ HIGH_THROUGHPUT = 2, /** * Low power mode for Multi-link operation. */ LOW_POWER = 3, } /** * Set mode for Multi-Link Operation. Various modes are defined by the enum |ChipMloMode|. * * @param mode MLO mode as defined by the enum |ChipMloMode| * @throws ServiceSpecificException with one of the following values: * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, * |WifiStatusCode.ERROR_NOT_SUPPORTED|, * |WifiStatusCode.ERROR_UNKNOWN| * */ void setMloMode(in ChipMloMode mode); } wifi/aidl/default/wifi_chip.cpp +28 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include "aidl_return_util.h" #include "aidl_struct_util.h" #include "wifi_legacy_hal.h" #include "wifi_status_util.h" #define P2P_MGMT_DEVICE_PREFIX "p2p-dev-" Loading Loading @@ -699,6 +700,11 @@ ndk::ScopedAStatus WifiChip::enableStaChannelForPeerNetwork( in_channelCategoryEnableFlag); } ndk::ScopedAStatus WifiChip::setMloMode(const ChipMloMode in_mode) { return validateAndCall(this, WifiStatusCode::ERROR_WIFI_CHIP_INVALID, &WifiChip::setMloModeInternal, in_mode); } void WifiChip::invalidateAndRemoveAllIfaces() { invalidateAndClearBridgedApAll(); invalidateAndClearAll(ap_ifaces_); Loading Loading @@ -1956,6 +1962,28 @@ bool WifiChip::findUsingNameFromBridgedApInstances(const std::string& name) { return false; } ndk::ScopedAStatus WifiChip::setMloModeInternal(const WifiChip::ChipMloMode in_mode) { legacy_hal::wifi_mlo_mode mode; switch (in_mode) { case WifiChip::ChipMloMode::DEFAULT: mode = legacy_hal::wifi_mlo_mode::WIFI_MLO_MODE_DEFAULT; break; case WifiChip::ChipMloMode::LOW_LATENCY: mode = legacy_hal::wifi_mlo_mode::WIFI_MLO_MODE_LOW_LATENCY; break; case WifiChip::ChipMloMode::HIGH_THROUGHPUT: mode = legacy_hal::wifi_mlo_mode::WIFI_MLO_MODE_HIGH_THROUGHPUT; break; case WifiChip::ChipMloMode::LOW_POWER: mode = legacy_hal::wifi_mlo_mode::WIFI_MLO_MODE_LOW_POWER; break; default: PLOG(ERROR) << "Error: invalid mode: " << toString(in_mode); return createWifiStatus(WifiStatusCode::ERROR_INVALID_ARGS); } return createWifiStatusFromLegacyError(legacy_hal_.lock()->setMloMode(mode)); } } // namespace wifi } // namespace hardware } // namespace android Loading wifi/aidl/default/wifi_chip.h +2 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,7 @@ class WifiChip : public BnWifiChip { ndk::ScopedAStatus enableStaChannelForPeerNetwork( ChannelCategoryMask in_channelCategoryEnableFlag) override; binder_status_t dump(int fd, const char** args, uint32_t numArgs) override; ndk::ScopedAStatus setMloMode(const ChipMloMode in_mode) override; private: void invalidateAndRemoveAllIfaces(); Loading Loading @@ -260,6 +261,7 @@ class WifiChip : public BnWifiChip { std::pair<WifiRadioCombinationMatrix, ndk::ScopedAStatus> getSupportedRadioCombinationsMatrixInternal(); std::pair<WifiChipCapabilities, ndk::ScopedAStatus> getWifiChipCapabilitiesInternal(); ndk::ScopedAStatus setMloModeInternal(const ChipMloMode in_mode); void setWeakPtr(std::weak_ptr<WifiChip> ptr); int32_t chip_id_; Loading wifi/aidl/default/wifi_legacy_hal.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -1881,6 +1881,10 @@ wifi_error WifiLegacyHal::enableStaChannelForPeerNetwork(uint32_t channelCategor channelCategoryEnableFlag); } wifi_error WifiLegacyHal::setMloMode(wifi_mlo_mode mode) { return global_func_table_.wifi_set_mlo_mode(global_handle_, mode); } void WifiLegacyHal::invalidate() { global_handle_ = nullptr; iface_name_to_handle_.clear(); Loading Loading
wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChip.aidl +8 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ interface IWifiChip { void stopLoggingToDebugRingBuffer(); void triggerSubsystemRestart(); void enableStaChannelForPeerNetwork(in android.hardware.wifi.IWifiChip.ChannelCategoryMask channelCategoryEnableFlag); void setMloMode(in android.hardware.wifi.IWifiChip.ChipMloMode mode); const int NO_POWER_CAP_CONSTANT = 0x7FFFFFFF; @Backing(type="int") @VintfStability enum ChipCapabilityMask { Loading Loading @@ -164,4 +165,11 @@ interface IWifiChip { INDOOR_CHANNEL = (1 << 0) /* 1 */, DFS_CHANNEL = (1 << 1) /* 2 */, } @Backing(type="int") @VintfStability enum ChipMloMode { DEFAULT = 0, LOW_LATENCY = 1, HIGH_THROUGHPUT = 2, LOW_POWER = 3, } }
wifi/aidl/android/hardware/wifi/IWifiChip.aidl +36 −0 Original line number Diff line number Diff line Loading @@ -1119,4 +1119,40 @@ interface IWifiChip { * |WifiStatusCode.FAILURE_UNKNOWN| */ void enableStaChannelForPeerNetwork(in ChannelCategoryMask channelCategoryEnableFlag); /** * Multi-Link Operation modes. */ @VintfStability @Backing(type="int") enum ChipMloMode { /** * Default mode for Multi-Link Operation. */ DEFAULT = 0, /** * Low latency mode for Multi-link operation. */ LOW_LATENCY = 1, /** * High throughput mode for Multi-link operation. */ HIGH_THROUGHPUT = 2, /** * Low power mode for Multi-link operation. */ LOW_POWER = 3, } /** * Set mode for Multi-Link Operation. Various modes are defined by the enum |ChipMloMode|. * * @param mode MLO mode as defined by the enum |ChipMloMode| * @throws ServiceSpecificException with one of the following values: * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|, * |WifiStatusCode.ERROR_NOT_SUPPORTED|, * |WifiStatusCode.ERROR_UNKNOWN| * */ void setMloMode(in ChipMloMode mode); }
wifi/aidl/default/wifi_chip.cpp +28 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include "aidl_return_util.h" #include "aidl_struct_util.h" #include "wifi_legacy_hal.h" #include "wifi_status_util.h" #define P2P_MGMT_DEVICE_PREFIX "p2p-dev-" Loading Loading @@ -699,6 +700,11 @@ ndk::ScopedAStatus WifiChip::enableStaChannelForPeerNetwork( in_channelCategoryEnableFlag); } ndk::ScopedAStatus WifiChip::setMloMode(const ChipMloMode in_mode) { return validateAndCall(this, WifiStatusCode::ERROR_WIFI_CHIP_INVALID, &WifiChip::setMloModeInternal, in_mode); } void WifiChip::invalidateAndRemoveAllIfaces() { invalidateAndClearBridgedApAll(); invalidateAndClearAll(ap_ifaces_); Loading Loading @@ -1956,6 +1962,28 @@ bool WifiChip::findUsingNameFromBridgedApInstances(const std::string& name) { return false; } ndk::ScopedAStatus WifiChip::setMloModeInternal(const WifiChip::ChipMloMode in_mode) { legacy_hal::wifi_mlo_mode mode; switch (in_mode) { case WifiChip::ChipMloMode::DEFAULT: mode = legacy_hal::wifi_mlo_mode::WIFI_MLO_MODE_DEFAULT; break; case WifiChip::ChipMloMode::LOW_LATENCY: mode = legacy_hal::wifi_mlo_mode::WIFI_MLO_MODE_LOW_LATENCY; break; case WifiChip::ChipMloMode::HIGH_THROUGHPUT: mode = legacy_hal::wifi_mlo_mode::WIFI_MLO_MODE_HIGH_THROUGHPUT; break; case WifiChip::ChipMloMode::LOW_POWER: mode = legacy_hal::wifi_mlo_mode::WIFI_MLO_MODE_LOW_POWER; break; default: PLOG(ERROR) << "Error: invalid mode: " << toString(in_mode); return createWifiStatus(WifiStatusCode::ERROR_INVALID_ARGS); } return createWifiStatusFromLegacyError(legacy_hal_.lock()->setMloMode(mode)); } } // namespace wifi } // namespace hardware } // namespace android Loading
wifi/aidl/default/wifi_chip.h +2 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,7 @@ class WifiChip : public BnWifiChip { ndk::ScopedAStatus enableStaChannelForPeerNetwork( ChannelCategoryMask in_channelCategoryEnableFlag) override; binder_status_t dump(int fd, const char** args, uint32_t numArgs) override; ndk::ScopedAStatus setMloMode(const ChipMloMode in_mode) override; private: void invalidateAndRemoveAllIfaces(); Loading Loading @@ -260,6 +261,7 @@ class WifiChip : public BnWifiChip { std::pair<WifiRadioCombinationMatrix, ndk::ScopedAStatus> getSupportedRadioCombinationsMatrixInternal(); std::pair<WifiChipCapabilities, ndk::ScopedAStatus> getWifiChipCapabilitiesInternal(); ndk::ScopedAStatus setMloModeInternal(const ChipMloMode in_mode); void setWeakPtr(std::weak_ptr<WifiChip> ptr); int32_t chip_id_; Loading
wifi/aidl/default/wifi_legacy_hal.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -1881,6 +1881,10 @@ wifi_error WifiLegacyHal::enableStaChannelForPeerNetwork(uint32_t channelCategor channelCategoryEnableFlag); } wifi_error WifiLegacyHal::setMloMode(wifi_mlo_mode mode) { return global_func_table_.wifi_set_mlo_mode(global_handle_, mode); } void WifiLegacyHal::invalidate() { global_handle_ = nullptr; iface_name_to_handle_.clear(); Loading