blob: 72cee899b0c1decac1601b686cf3d9134a0ea546 [file] [log] [blame]
/*
* Copyright 2018 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.3;
import @1.0::WifiStatus;
import @1.2::IWifiChip;
/**
* Interface that represents a chip that must be configured as a single unit.
*/
interface IWifiChip extends @1.2::IWifiChip {
/**
* Capabilities exposed by this chip.
*/
enum ChipCapabilityMask : @1.2::IWifiChip.ChipCapabilityMask {
/**
* Set Latency Mode.
*/
SET_LATENCY_MODE = 1 << 12,
/**
* Support P2P MAC randomization
*/
P2P_RAND_MAC = 1 << 13
};
/**
* Get the capabilities supported by this chip.
*
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|,
* |WifiStatusCode.ERROR_NOT_AVAILABLE|,
* |WifiStatusCode.ERROR_UNKNOWN|
* @return capabilities Bitset of |ChipCapabilityMask| values.
*/
getCapabilities_1_3()
generates (WifiStatus status, bitfield<ChipCapabilityMask> capabilities);
/**
* This enum represents the different latency modes that can be set through
* setLatencyMode()
*/
enum LatencyMode : uint32_t {
NORMAL = 0,
LOW = 1
};
/**
* API to set the wifi latency mode
*
* The latency mode is a hint to the HAL to enable or disable Wi-Fi latency
* optimization. The optimization should be enabled if the mode is set to |LOW|
* and should be disabled if the mode is set to |NORMAL|.
* Wi-Fi latency optimization may trade-off latency against other Wi-Fi
* functionality such as scanning, roaming, etc. but it should not result in
* completely halting this functionality.
*
* The low latency mode targets applications such as gaming and virtual reality.
*/
setLatencyMode(LatencyMode mode) generates (WifiStatus status);
/**
* API to flush debug ring buffer data to files.
*
* Force flush debug ring buffer using IBase::debug.
* This API help to collect firmware/driver/pkt logs.
*
* @return status WifiStatus of the operation.
* Possible status codes:
* |WifiStatusCode.SUCCESS|,
* |WifiStatusCode.UNKNOWN|
*/
flushRingBufferToFile() generates (WifiStatus status);
};