Loading wifi/1.1/default/hidl_struct_util.cpp +22 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,9 @@ #include <android-base/logging.h> #include <utils/SystemClock.h> #include <android/hardware/wifi/1.0/IWifiChip.h> #include <android/hardware/wifi/1.1/IWifiChip.h> #include "hidl_struct_util.h" namespace android { Loading Loading @@ -66,6 +69,17 @@ convertLegacyLoggerFeatureToHidlStaIfaceCapability(uint32_t feature) { return {}; } V1_1::IWifiChip::ChipCapabilityMask convertLegacyFeatureToHidlChipCapability( uint32_t feature) { using HidlChipCaps = V1_1::IWifiChip::ChipCapabilityMask; switch (feature) { case WIFI_FEATURE_SET_TX_POWER_LIMIT: return HidlChipCaps::SET_TX_POWER_LIMIT; }; CHECK(false) << "Unknown legacy feature: " << feature; return {}; } IWifiStaIface::StaIfaceCapabilityMask convertLegacyFeatureToHidlStaIfaceCapability(uint32_t feature) { using HidlStaIfaceCaps = IWifiStaIface::StaIfaceCapabilityMask; Loading Loading @@ -102,7 +116,9 @@ convertLegacyFeatureToHidlStaIfaceCapability(uint32_t feature) { } bool convertLegacyFeaturesToHidlChipCapabilities( uint32_t legacy_logger_feature_set, uint32_t* hidl_caps) { uint32_t legacy_feature_set, uint32_t legacy_logger_feature_set, uint32_t* hidl_caps) { if (!hidl_caps) { return false; } Loading @@ -117,6 +133,11 @@ bool convertLegacyFeaturesToHidlChipCapabilities( *hidl_caps |= convertLegacyLoggerFeatureToHidlChipCapability(feature); } } for (const auto feature : {WIFI_FEATURE_SET_TX_POWER_LIMIT}) { if (feature & legacy_feature_set) { *hidl_caps |= convertLegacyFeatureToHidlChipCapability(feature); } } // There are no flags for these 3 in the legacy feature set. Adding them to // the set because all the current devices support it. *hidl_caps |= HidlChipCaps::DEBUG_RING_BUFFER_VENDOR_DATA; Loading Loading @@ -241,7 +262,6 @@ bool convertLegacyFeaturesToHidlStaCapabilities( return false; } *hidl_caps = {}; *hidl_caps = 0; using HidlStaIfaceCaps = IWifiStaIface::StaIfaceCapabilityMask; for (const auto feature : {legacy_hal::WIFI_LOGGER_PACKET_FATE_SUPPORTED}) { if (feature & legacy_logger_feature_set) { Loading wifi/1.1/default/hidl_struct_util.h +4 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ #include <vector> #include <android/hardware/wifi/1.0/IWifi.h> #include <android/hardware/wifi/1.0/types.h> #include "wifi_legacy_hal.h" Loading @@ -39,7 +39,9 @@ using namespace android::hardware::wifi::V1_0; // Chip conversion methods. bool convertLegacyFeaturesToHidlChipCapabilities( uint32_t legacy_logger_feature_set, uint32_t* hidl_caps); uint32_t legacy_feature_set, uint32_t legacy_logger_feature_set, uint32_t* hidl_caps); bool convertLegacyDebugRingBufferStatusToHidl( const legacy_hal::wifi_ring_buffer_status& legacy_status, WifiDebugRingBufferStatus* hidl_status); Loading wifi/1.1/default/wifi_chip.cpp +12 −8 Original line number Diff line number Diff line Loading @@ -387,7 +387,13 @@ WifiStatus WifiChip::registerEventCallbackInternal( std::pair<WifiStatus, uint32_t> WifiChip::getCapabilitiesInternal() { legacy_hal::wifi_error legacy_status; uint32_t legacy_feature_set; uint32_t legacy_logger_feature_set; std::tie(legacy_status, legacy_feature_set) = legacy_hal_.lock()->getSupportedFeatureSet(); if (legacy_status != legacy_hal::WIFI_SUCCESS) { return {createWifiStatusFromLegacyError(legacy_status), 0}; } std::tie(legacy_status, legacy_logger_feature_set) = legacy_hal_.lock()->getLoggerSupportedFeatureSet(); if (legacy_status != legacy_hal::WIFI_SUCCESS) { Loading @@ -395,7 +401,7 @@ std::pair<WifiStatus, uint32_t> WifiChip::getCapabilitiesInternal() { } uint32_t hidl_caps; if (!hidl_struct_util::convertLegacyFeaturesToHidlChipCapabilities( legacy_logger_feature_set, &hidl_caps)) { legacy_feature_set, legacy_logger_feature_set, &hidl_caps)) { return {createWifiStatus(WifiStatusCode::ERROR_UNKNOWN), 0}; } return {createWifiStatus(WifiStatusCode::SUCCESS), hidl_caps}; Loading Loading @@ -818,16 +824,14 @@ WifiStatus WifiChip::enableDebugErrorAlertsInternal(bool enable) { return createWifiStatusFromLegacyError(legacy_status); } WifiStatus WifiChip::setTxPowerLimitInternal(int32_t /* powerInDbm */) { // TODO(b/62437848): Implement this method once we are ready with the // header changes in legacy HAL. return createWifiStatus(WifiStatusCode::ERROR_NOT_SUPPORTED); WifiStatus WifiChip::setTxPowerLimitInternal(int32_t powerInDbm) { auto legacy_status = legacy_hal_.lock()->setTxPowerLimit(powerInDbm); return createWifiStatusFromLegacyError(legacy_status); } WifiStatus WifiChip::resetTxPowerLimitInternal() { // TODO(b/62437848): Implement this method once we are ready with the // header changes in legacy HAL. return createWifiStatus(WifiStatusCode::ERROR_NOT_SUPPORTED); auto legacy_status = legacy_hal_.lock()->resetTxPowerLimit(); return createWifiStatusFromLegacyError(legacy_status); } WifiStatus WifiChip::handleChipConfiguration(ChipModeId mode_id) { Loading wifi/1.1/default/wifi_legacy_hal.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -752,6 +752,15 @@ wifi_error WifiLegacyHal::setScanningMacOui(const std::array<uint8_t, 3>& oui) { oui_internal.data()); } wifi_error WifiLegacyHal::setTxPowerLimit(int32_t tx_level_dbm) { return global_func_table_.wifi_set_tx_power_limit(wlan_interface_handle_, tx_level_dbm); } wifi_error WifiLegacyHal::resetTxPowerLimit() { return global_func_table_.wifi_reset_tx_power_limit(wlan_interface_handle_); } std::pair<wifi_error, uint32_t> WifiLegacyHal::getLoggerSupportedFeatureSet() { uint32_t supported_features; wifi_error status = global_func_table_.wifi_get_logger_supported_feature_set( Loading wifi/1.1/default/wifi_legacy_hal.h +2 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,8 @@ class WifiLegacyHal { uint32_t period_in_ms); wifi_error stopSendingOffloadedPacket(uint32_t cmd_id); wifi_error setScanningMacOui(const std::array<uint8_t, 3>& oui); wifi_error setTxPowerLimit(int32_t tx_level_dbm); wifi_error resetTxPowerLimit(); // Logger/debug functions. std::pair<wifi_error, uint32_t> getLoggerSupportedFeatureSet(); wifi_error startPktFateMonitoring(); Loading Loading
wifi/1.1/default/hidl_struct_util.cpp +22 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,9 @@ #include <android-base/logging.h> #include <utils/SystemClock.h> #include <android/hardware/wifi/1.0/IWifiChip.h> #include <android/hardware/wifi/1.1/IWifiChip.h> #include "hidl_struct_util.h" namespace android { Loading Loading @@ -66,6 +69,17 @@ convertLegacyLoggerFeatureToHidlStaIfaceCapability(uint32_t feature) { return {}; } V1_1::IWifiChip::ChipCapabilityMask convertLegacyFeatureToHidlChipCapability( uint32_t feature) { using HidlChipCaps = V1_1::IWifiChip::ChipCapabilityMask; switch (feature) { case WIFI_FEATURE_SET_TX_POWER_LIMIT: return HidlChipCaps::SET_TX_POWER_LIMIT; }; CHECK(false) << "Unknown legacy feature: " << feature; return {}; } IWifiStaIface::StaIfaceCapabilityMask convertLegacyFeatureToHidlStaIfaceCapability(uint32_t feature) { using HidlStaIfaceCaps = IWifiStaIface::StaIfaceCapabilityMask; Loading Loading @@ -102,7 +116,9 @@ convertLegacyFeatureToHidlStaIfaceCapability(uint32_t feature) { } bool convertLegacyFeaturesToHidlChipCapabilities( uint32_t legacy_logger_feature_set, uint32_t* hidl_caps) { uint32_t legacy_feature_set, uint32_t legacy_logger_feature_set, uint32_t* hidl_caps) { if (!hidl_caps) { return false; } Loading @@ -117,6 +133,11 @@ bool convertLegacyFeaturesToHidlChipCapabilities( *hidl_caps |= convertLegacyLoggerFeatureToHidlChipCapability(feature); } } for (const auto feature : {WIFI_FEATURE_SET_TX_POWER_LIMIT}) { if (feature & legacy_feature_set) { *hidl_caps |= convertLegacyFeatureToHidlChipCapability(feature); } } // There are no flags for these 3 in the legacy feature set. Adding them to // the set because all the current devices support it. *hidl_caps |= HidlChipCaps::DEBUG_RING_BUFFER_VENDOR_DATA; Loading Loading @@ -241,7 +262,6 @@ bool convertLegacyFeaturesToHidlStaCapabilities( return false; } *hidl_caps = {}; *hidl_caps = 0; using HidlStaIfaceCaps = IWifiStaIface::StaIfaceCapabilityMask; for (const auto feature : {legacy_hal::WIFI_LOGGER_PACKET_FATE_SUPPORTED}) { if (feature & legacy_logger_feature_set) { Loading
wifi/1.1/default/hidl_struct_util.h +4 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ #include <vector> #include <android/hardware/wifi/1.0/IWifi.h> #include <android/hardware/wifi/1.0/types.h> #include "wifi_legacy_hal.h" Loading @@ -39,7 +39,9 @@ using namespace android::hardware::wifi::V1_0; // Chip conversion methods. bool convertLegacyFeaturesToHidlChipCapabilities( uint32_t legacy_logger_feature_set, uint32_t* hidl_caps); uint32_t legacy_feature_set, uint32_t legacy_logger_feature_set, uint32_t* hidl_caps); bool convertLegacyDebugRingBufferStatusToHidl( const legacy_hal::wifi_ring_buffer_status& legacy_status, WifiDebugRingBufferStatus* hidl_status); Loading
wifi/1.1/default/wifi_chip.cpp +12 −8 Original line number Diff line number Diff line Loading @@ -387,7 +387,13 @@ WifiStatus WifiChip::registerEventCallbackInternal( std::pair<WifiStatus, uint32_t> WifiChip::getCapabilitiesInternal() { legacy_hal::wifi_error legacy_status; uint32_t legacy_feature_set; uint32_t legacy_logger_feature_set; std::tie(legacy_status, legacy_feature_set) = legacy_hal_.lock()->getSupportedFeatureSet(); if (legacy_status != legacy_hal::WIFI_SUCCESS) { return {createWifiStatusFromLegacyError(legacy_status), 0}; } std::tie(legacy_status, legacy_logger_feature_set) = legacy_hal_.lock()->getLoggerSupportedFeatureSet(); if (legacy_status != legacy_hal::WIFI_SUCCESS) { Loading @@ -395,7 +401,7 @@ std::pair<WifiStatus, uint32_t> WifiChip::getCapabilitiesInternal() { } uint32_t hidl_caps; if (!hidl_struct_util::convertLegacyFeaturesToHidlChipCapabilities( legacy_logger_feature_set, &hidl_caps)) { legacy_feature_set, legacy_logger_feature_set, &hidl_caps)) { return {createWifiStatus(WifiStatusCode::ERROR_UNKNOWN), 0}; } return {createWifiStatus(WifiStatusCode::SUCCESS), hidl_caps}; Loading Loading @@ -818,16 +824,14 @@ WifiStatus WifiChip::enableDebugErrorAlertsInternal(bool enable) { return createWifiStatusFromLegacyError(legacy_status); } WifiStatus WifiChip::setTxPowerLimitInternal(int32_t /* powerInDbm */) { // TODO(b/62437848): Implement this method once we are ready with the // header changes in legacy HAL. return createWifiStatus(WifiStatusCode::ERROR_NOT_SUPPORTED); WifiStatus WifiChip::setTxPowerLimitInternal(int32_t powerInDbm) { auto legacy_status = legacy_hal_.lock()->setTxPowerLimit(powerInDbm); return createWifiStatusFromLegacyError(legacy_status); } WifiStatus WifiChip::resetTxPowerLimitInternal() { // TODO(b/62437848): Implement this method once we are ready with the // header changes in legacy HAL. return createWifiStatus(WifiStatusCode::ERROR_NOT_SUPPORTED); auto legacy_status = legacy_hal_.lock()->resetTxPowerLimit(); return createWifiStatusFromLegacyError(legacy_status); } WifiStatus WifiChip::handleChipConfiguration(ChipModeId mode_id) { Loading
wifi/1.1/default/wifi_legacy_hal.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -752,6 +752,15 @@ wifi_error WifiLegacyHal::setScanningMacOui(const std::array<uint8_t, 3>& oui) { oui_internal.data()); } wifi_error WifiLegacyHal::setTxPowerLimit(int32_t tx_level_dbm) { return global_func_table_.wifi_set_tx_power_limit(wlan_interface_handle_, tx_level_dbm); } wifi_error WifiLegacyHal::resetTxPowerLimit() { return global_func_table_.wifi_reset_tx_power_limit(wlan_interface_handle_); } std::pair<wifi_error, uint32_t> WifiLegacyHal::getLoggerSupportedFeatureSet() { uint32_t supported_features; wifi_error status = global_func_table_.wifi_get_logger_supported_feature_set( Loading
wifi/1.1/default/wifi_legacy_hal.h +2 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,8 @@ class WifiLegacyHal { uint32_t period_in_ms); wifi_error stopSendingOffloadedPacket(uint32_t cmd_id); wifi_error setScanningMacOui(const std::array<uint8_t, 3>& oui); wifi_error setTxPowerLimit(int32_t tx_level_dbm); wifi_error resetTxPowerLimit(); // Logger/debug functions. std::pair<wifi_error, uint32_t> getLoggerSupportedFeatureSet(); wifi_error startPktFateMonitoring(); Loading