/* * 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 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); };