Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)

Bug: 166295507
Merged-In: I5081765a1f7067786819df994029cd37a56ec570
Change-Id: Ia45f259338a1f8255e22c7ba6125e8149eaa9081
This commit is contained in:
Xin Li 2020-08-27 10:16:42 -07:00
commit 936c77642d
4 changed files with 115 additions and 38 deletions

View file

@ -1,5 +1,5 @@
{
"postsubmit": [
"presubmit": [
{
"name": "libpower_test"
}

View file

@ -66,11 +66,11 @@ typedef struct {
/* wifi rate */
typedef struct {
u32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
u32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4:HE 5..7 reserved
u32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
u32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
u32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
// HT/VHT it would be mcs index
// HT/VHT/HE it would be mcs index
u32 reserved :16; // reserved
u32 bitrate; // units of 100 Kbps
} wifi_rate;

View file

@ -50,7 +50,8 @@ typedef enum {
typedef enum {
WIFI_RTT_PREAMBLE_LEGACY = 0x1,
WIFI_RTT_PREAMBLE_HT = 0x2,
WIFI_RTT_PREAMBLE_VHT = 0x4
WIFI_RTT_PREAMBLE_VHT = 0x4,
WIFI_RTT_PREAMBLE_HE = 0x8
} wifi_rtt_preamble;
/* RTT Type */
@ -184,6 +185,7 @@ wifi_error wifi_rtt_channel_map_clear(wifi_request_id id, wifi_interface_handle
#define PREAMBLE_LEGACY 0x1
#define PREAMBLE_HT 0x2
#define PREAMBLE_VHT 0x4
#define PREAMBLE_HE 0x8
// BW definition for bit mask used in wifi_rtt_capabilities
#define BW_5_SUPPORT 0x1

View file

@ -55,6 +55,24 @@ typedef enum {
WIFI_LATENCY_MODE_LOW = 1,
} wifi_latency_mode;
/* Wifi Thermal mitigation modes */
typedef enum {
WIFI_MITIGATION_NONE = 0,
WIFI_MITIGATION_LIGHT = 1,
WIFI_MITIGATION_MODERATE = 2,
WIFI_MITIGATION_SEVERE = 3,
WIFI_MITIGATION_CRITICAL = 4,
WIFI_MITIGATION_EMERGENCY = 5,
} wifi_thermal_mode;
/* List of interface types supported */
typedef enum {
WIFI_INTERFACE_TYPE_STA = 0,
WIFI_INTERFACE_TYPE_AP = 1,
WIFI_INTERFACE_TYPE_P2P = 2,
WIFI_INTERFACE_TYPE_NAN = 3,
} wifi_interface_type;
/*
* enum wlan_mac_band - Band information corresponding to the WLAN MAC.
*/
@ -62,7 +80,9 @@ typedef enum {
/* WLAN MAC Operates in 2.4 GHz Band */
WLAN_MAC_2_4_BAND = 1 << 0,
/* WLAN MAC Operates in 5 GHz Band */
WLAN_MAC_5_0_BAND = 1 << 1
WLAN_MAC_5_0_BAND = 1 << 1,
/* WLAN MAC Operates in 6 GHz Band */
WLAN_MAC_6_0_BAND = 1 << 2
} wlan_mac_band;
typedef int wifi_radio;
@ -90,6 +110,13 @@ typedef enum {
WIFI_ERROR_BUSY = -10,
} wifi_error;
typedef enum {
WIFI_ACCESS_CATEGORY_BEST_EFFORT = 0,
WIFI_ACCESS_CATEGORY_BACKGROUND = 1,
WIFI_ACCESS_CATEGORY_VIDEO = 2,
WIFI_ACCESS_CATEGORY_VOICE = 3
} wifi_access_category;
typedef unsigned char byte;
typedef unsigned char u8;
typedef signed char s8;
@ -133,40 +160,40 @@ void wifi_event_loop(wifi_handle handle);
void wifi_get_error_info(wifi_error err, const char **msg); // return a pointer to a static string
/* Feature enums */
#define WIFI_FEATURE_INFRA 0x0001 // Basic infrastructure mode
#define WIFI_FEATURE_INFRA_5G 0x0002 // Support for 5 GHz Band
#define WIFI_FEATURE_HOTSPOT 0x0004 // Support for GAS/ANQP
#define WIFI_FEATURE_P2P 0x0008 // Wifi-Direct
#define WIFI_FEATURE_SOFT_AP 0x0010 // Soft AP
#define WIFI_FEATURE_GSCAN 0x0020 // Google-Scan APIs
#define WIFI_FEATURE_NAN 0x0040 // Neighbor Awareness Networking
#define WIFI_FEATURE_D2D_RTT 0x0080 // Device-to-device RTT
#define WIFI_FEATURE_D2AP_RTT 0x0100 // Device-to-AP RTT
#define WIFI_FEATURE_BATCH_SCAN 0x0200 // Batched Scan (legacy)
#define WIFI_FEATURE_PNO 0x0400 // Preferred network offload
#define WIFI_FEATURE_ADDITIONAL_STA 0x0800 // Support for two STAs
#define WIFI_FEATURE_TDLS 0x1000 // Tunnel directed link setup
#define WIFI_FEATURE_TDLS_OFFCHANNEL 0x2000 // Support for TDLS off channel
#define WIFI_FEATURE_EPR 0x4000 // Enhanced power reporting
#define WIFI_FEATURE_AP_STA 0x8000 // Support for AP STA Concurrency
#define WIFI_FEATURE_LINK_LAYER_STATS 0x10000 // Link layer stats collection
#define WIFI_FEATURE_LOGGER 0x20000 // WiFi Logger
#define WIFI_FEATURE_HAL_EPNO 0x40000 // WiFi PNO enhanced
#define WIFI_FEATURE_RSSI_MONITOR 0x80000 // RSSI Monitor
#define WIFI_FEATURE_MKEEP_ALIVE 0x100000 // WiFi mkeep_alive
#define WIFI_FEATURE_CONFIG_NDO 0x200000 // ND offload configure
#define WIFI_FEATURE_TX_TRANSMIT_POWER 0x400000 // Capture Tx transmit power levels
#define WIFI_FEATURE_CONTROL_ROAMING 0x800000 // Enable/Disable firmware roaming
#define WIFI_FEATURE_IE_WHITELIST 0x1000000 // Support Probe IE white listing
#define WIFI_FEATURE_SCAN_RAND 0x2000000 // Support MAC & Probe Sequence Number randomization
#define WIFI_FEATURE_SET_TX_POWER_LIMIT 0x4000000 // Support Tx Power Limit setting
#define WIFI_FEATURE_USE_BODY_HEAD_SAR 0x8000000 // Support Using Body/Head Proximity for SAR
#define WIFI_FEATURE_SET_LATENCY_MODE 0x40000000 // Support Latency mode setting
#define WIFI_FEATURE_P2P_RAND_MAC 0x80000000 // Support Support P2P MAC randomization
#define WIFI_FEATURE_INFRA (uint64_t)0x1 // Basic infrastructure mode
#define WIFI_FEATURE_INFRA_5G (uint64_t)0x2 // Support for 5 GHz Band
#define WIFI_FEATURE_HOTSPOT (uint64_t)0x4 // Support for GAS/ANQP
#define WIFI_FEATURE_P2P (uint64_t)0x8 // Wifi-Direct
#define WIFI_FEATURE_SOFT_AP (uint64_t)0x10 // Soft AP
#define WIFI_FEATURE_GSCAN (uint64_t)0x20 // Google-Scan APIs
#define WIFI_FEATURE_NAN (uint64_t)0x40 // Neighbor Awareness Networking
#define WIFI_FEATURE_D2D_RTT (uint64_t)0x80 // Device-to-device RTT
#define WIFI_FEATURE_D2AP_RTT (uint64_t)0x100 // Device-to-AP RTT
#define WIFI_FEATURE_BATCH_SCAN (uint64_t)0x200 // Batched Scan (legacy)
#define WIFI_FEATURE_PNO (uint64_t)0x400 // Preferred network offload
#define WIFI_FEATURE_ADDITIONAL_STA (uint64_t)0x800 // Support for two STAs
#define WIFI_FEATURE_TDLS (uint64_t)0x1000 // Tunnel directed link setup
#define WIFI_FEATURE_TDLS_OFFCHANNEL (uint64_t)0x2000 // Support for TDLS off channel
#define WIFI_FEATURE_EPR (uint64_t)0x4000 // Enhanced power reporting
#define WIFI_FEATURE_AP_STA (uint64_t)0x8000 // Support for AP STA Concurrency
#define WIFI_FEATURE_LINK_LAYER_STATS (uint64_t)0x10000 // Link layer stats collection
#define WIFI_FEATURE_LOGGER (uint64_t)0x20000 // WiFi Logger
#define WIFI_FEATURE_HAL_EPNO (uint64_t)0x40000 // WiFi PNO enhanced
#define WIFI_FEATURE_RSSI_MONITOR (uint64_t)0x80000 // RSSI Monitor
#define WIFI_FEATURE_MKEEP_ALIVE (uint64_t)0x100000 // WiFi mkeep_alive
#define WIFI_FEATURE_CONFIG_NDO (uint64_t)0x200000 // ND offload configure
#define WIFI_FEATURE_TX_TRANSMIT_POWER (uint64_t)0x400000 // Capture Tx transmit power levels
#define WIFI_FEATURE_CONTROL_ROAMING (uint64_t)0x800000 // Enable/Disable firmware roaming
#define WIFI_FEATURE_IE_WHITELIST (uint64_t)0x1000000 // Support Probe IE white listing
#define WIFI_FEATURE_SCAN_RAND (uint64_t)0x2000000 // Support MAC & Probe Sequence Number randomization
#define WIFI_FEATURE_SET_TX_POWER_LIMIT (uint64_t)0x4000000 // Support Tx Power Limit setting
#define WIFI_FEATURE_USE_BODY_HEAD_SAR (uint64_t)0x8000000 // Support Using Body/Head Proximity for SAR
#define WIFI_FEATURE_SET_LATENCY_MODE (uint64_t)0x40000000 // Support Latency mode setting
#define WIFI_FEATURE_P2P_RAND_MAC (uint64_t)0x80000000 // Support P2P MAC randomization
// Add more features here
typedef int feature_set;
typedef uint64_t feature_set;
#define IS_MASK_SET(mask, flags) (((flags) & (mask)) == (mask))
@ -226,6 +253,42 @@ wifi_error wifi_set_nodfs_flag(wifi_interface_handle handle, u32 nodfs);
wifi_error wifi_select_tx_power_scenario(wifi_interface_handle handle, wifi_power_scenario scenario);
wifi_error wifi_reset_tx_power_scenario(wifi_interface_handle handle);
wifi_error wifi_set_latency_mode(wifi_interface_handle handle, wifi_latency_mode mode);
wifi_error wifi_map_dscp_access_category(wifi_handle handle,
uint32_t start, uint32_t end,
uint32_t access_category);
wifi_error wifi_reset_dscp_mapping(wifi_handle handle);
/**
* Wifi HAL Thermal Mitigation API
*
* wifi_handle : wifi global handle (note: this is not a interface specific
* command). Mitigation is expected to be applied across all active interfaces
* The implementation and the mitigation action mapping to each mode is chip
* specific. Mitigation will be active until Wifi is turned off or
* WIFI_MITIGATION_NONE mode is sent
*
* mode: Thermal mitigation mode
* WIFI_MITIGATION_NONE : Clear all Wifi thermal mitigation actions
* WIFI_MITIGATION_LIGHT : Light Throttling where UX is not impacted
* WIFI_MITIGATION_MODERATE : Moderate throttling where UX not largely impacted
* WIFI_MITIGATION_SEVERE : Severe throttling where UX is largely impacted
* WIFI_MITIGATION_CRITICAL : Platform has done everything to reduce power
* WIFI_MITIGATION_EMERGENCY: Key components in platform are shutting down
*
* completion_window
* Deadline (in milliseconds) to complete this request, value 0 implies apply
* immediately. Deadline is basically a relaxed limit and allows vendors to
* apply the mitigation within the window (if it cannot apply immediately)
*
* Return
* WIFI_ERROR_NOT_SUPPORTED : Chip does not support thermal mitigation
* WIFI_ERROR_BUSY : Mitigation is supported, but retry later
* WIFI_ERROR_NONE : Mitigation request has been accepted
*/
wifi_error wifi_set_thermal_mitigation_mode(wifi_handle handle,
wifi_thermal_mode mode,
u32 completion_window);
typedef struct rx_data_cnt_details_t {
int rx_unicast_cnt; /*Total rx unicast packet which woke up host */
@ -364,9 +427,9 @@ typedef struct {
int num, wifi_passpoint_network *networks, wifi_passpoint_event_handler handler);
wifi_error (* wifi_reset_passpoint_list)(wifi_request_id id, wifi_interface_handle iface);
wifi_error (*wifi_set_lci) (wifi_request_id id, wifi_interface_handle iface,
wifi_lci_information *lci);
wifi_lci_information *lci);
wifi_error (*wifi_set_lcr) (wifi_request_id id, wifi_interface_handle iface,
wifi_lcr_information *lcr);
wifi_lcr_information *lcr);
wifi_error (*wifi_start_sending_offloaded_packet)(wifi_request_id id,
wifi_interface_handle iface, u16 ether_type, u8 *ip_packet,
u16 ip_packet_len, u8 *src_mac_addr, u8 *dst_mac_addr,
@ -478,6 +541,18 @@ typedef struct {
iface, wifi_radio_mode_change_handler eh);
wifi_error (*wifi_set_latency_mode)(wifi_interface_handle iface,
wifi_latency_mode mode);
wifi_error (*wifi_set_thermal_mitigation_mode)(wifi_handle handle,
wifi_thermal_mode mode,
u32 completion_window);
wifi_error (*wifi_map_dscp_access_category)(wifi_handle handle,
u32 start, u32 end,
u32 access_category);
wifi_error (*wifi_reset_dscp_mapping)(wifi_handle handle);
wifi_error (*wifi_virtual_interface_create)(wifi_handle handle, const char* ifname,
wifi_interface_type iface_type);
wifi_error (*wifi_virtual_interface_delete)(wifi_handle handle, const char* ifname);
} wifi_hal_fn;
wifi_error init_wifi_vendor_hal_func_table(wifi_hal_fn *fn);
#ifdef __cplusplus