735ff43197
Modifying the interface used to lower the tx power level for meeting SAR requirements based on recommendation from the nexus hardware team. The previous interface passed in a single power value in dBm for meeting SAR requirements. However, the SAR requirements are more complex than that. Based on the connection mode (802.11 a,b,g,n,ac) and the number of streams that are active (MIMO), the SAR power levels are very different. Using the previous interface would mean that we will have to use the lowest power level among all the connection modes to meet the SAR requirements. This would however result in us lowering the power much more than needed (~2 dBm) for many connection modes. Instead, we're switching to a more generic interface where the framework informs the wifi chip that we're entering a special tx power mode scenario (today, there is only 1 for voice call). The chip can then lookup the extensive table of power levels for different connection modes which are pre-populated by the OEM's in the BDF file to set the power level (depending on the scenario framework sends and the active connection mode). Bug: 62437848 Test: Manual tests Change-Id: I5ee3f0d2c130958dbeb352e3b5ad9407f432624f
91 lines
3 KiB
Text
91 lines
3 KiB
Text
/*
|
|
* Copyright 2017 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.1;
|
|
|
|
import @1.0::IWifiChip;
|
|
import @1.0::WifiStatus;
|
|
|
|
/**
|
|
* Interface that represents a chip that must be configured as a single unit.
|
|
* The HAL/driver/firmware will be responsible for determining which phy is used
|
|
* to perform operations like NAN, RTT, etc.
|
|
*/
|
|
interface IWifiChip extends @1.0::IWifiChip {
|
|
/**
|
|
* Capabilities exposed by this chip.
|
|
*/
|
|
enum ChipCapabilityMask : @1.0::IWifiChip.ChipCapabilityMask {
|
|
/**
|
|
* Set/Reset Tx Power limits.
|
|
*/
|
|
SET_TX_POWER_LIMIT = 1 << 8,
|
|
/**
|
|
* Device to Device RTT.
|
|
*/
|
|
D2D_RTT = 1 << 9,
|
|
/**
|
|
* Device to AP RTT.
|
|
*/
|
|
D2AP_RTT = 1 << 10
|
|
};
|
|
|
|
/**
|
|
* List of preset wifi radio TX power levels for different scenarios.
|
|
* The actual power values (typically varies based on the channel,
|
|
* 802.11 connection type, number of MIMO streams, etc) for each scenario
|
|
* is defined by the OEM as a BDF file since it varies for each wifi chip
|
|
* vendor and device.
|
|
*/
|
|
enum TxPowerScenario : uint32_t {
|
|
VOICE_CALL = 0,
|
|
};
|
|
|
|
/**
|
|
* API to select one of the preset TX power scenarios.
|
|
*
|
|
* The framework must invoke this method with the appropriate scenario to let
|
|
* the wifi chip change it's transmitting power levels.
|
|
* OEM's should define various power profiles for each of the scenarios
|
|
* above (defined in |TxPowerScenario|).
|
|
*
|
|
* @param scenario One of the preselected scenarios defined in
|
|
* |TxPowerScenario|.
|
|
* @return status WifiStatus of the operation.
|
|
* Possible status codes:
|
|
* |WifiStatusCode.SUCCESS|,
|
|
* |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|,
|
|
* |WifiStatusCode.ERROR_NOT_SUPPORTED|,
|
|
* |WifiStatusCode.NOT_AVAILABLE|,
|
|
* |WifiStatusCode.UNKNOWN|
|
|
*/
|
|
selectTxPowerScenario(TxPowerScenario scenario) generates (WifiStatus status);
|
|
|
|
/**
|
|
* API to reset TX power levels.
|
|
* This is used to indicate the end of the previously selected TX power
|
|
* scenario and let the wifi chip fall back to the default power values.
|
|
*
|
|
* @return status WifiStatus of the operation.
|
|
* Possible status codes:
|
|
* |WifiStatusCode.SUCCESS|,
|
|
* |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|,
|
|
* |WifiStatusCode.ERROR_NOT_SUPPORTED|,
|
|
* |WifiStatusCode.NOT_AVAILABLE|,
|
|
* |WifiStatusCode.UNKNOWN|
|
|
*/
|
|
resetTxPowerScenario() generates (WifiStatus status);
|
|
};
|