Merge pi-dev-plus-aosp-without-vendor into stage-aosp-master
Bug: 79597307 Change-Id: Ia326704cf26c693f948b52290b489e7d98c559d5
This commit is contained in:
commit
d0dcc4afc1
4 changed files with 180 additions and 10 deletions
|
@ -25,7 +25,6 @@
|
||||||
#include <utils/String16.h>
|
#include <utils/String16.h>
|
||||||
#include <utils/String8.h>
|
#include <utils/String8.h>
|
||||||
|
|
||||||
#include <media/IAudioFlinger.h>
|
|
||||||
#include <hardware_legacy/AudioSystemLegacy.h>
|
#include <hardware_legacy/AudioSystemLegacy.h>
|
||||||
|
|
||||||
#include <system/audio.h>
|
#include <system/audio.h>
|
||||||
|
|
|
@ -22,7 +22,9 @@ typedef enum {
|
||||||
RTT_STATUS_FAIL_BUSY_TRY_LATER = 12, // responder cannot collaborate at time of request
|
RTT_STATUS_FAIL_BUSY_TRY_LATER = 12, // responder cannot collaborate at time of request
|
||||||
RTT_STATUS_INVALID_REQ = 13, // bad request args
|
RTT_STATUS_INVALID_REQ = 13, // bad request args
|
||||||
RTT_STATUS_NO_WIFI = 14, // WiFi not enabled
|
RTT_STATUS_NO_WIFI = 14, // WiFi not enabled
|
||||||
RTT_STATUS_FAIL_FTM_PARAM_OVERRIDE = 15 // Responder overrides param info, cannot range with new params
|
RTT_STATUS_FAIL_FTM_PARAM_OVERRIDE = 15, // Responder overrides param info, cannot range with new params
|
||||||
|
RTT_STATUS_NAN_RANGING_PROTOCOL_FAILURE =16, //Negotiation failure
|
||||||
|
RTT_STATUS_NAN_RANGING_CONCURRENCY_NOT_SUPPORTED=17, //concurrency not supported (NDP+RTT)
|
||||||
} wifi_rtt_status;
|
} wifi_rtt_status;
|
||||||
|
|
||||||
/* RTT peer type */
|
/* RTT peer type */
|
||||||
|
|
|
@ -23,6 +23,8 @@ extern "C"
|
||||||
#endif
|
#endif
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#define IFNAMSIZ 16
|
||||||
|
|
||||||
/* WiFi Common definitions */
|
/* WiFi Common definitions */
|
||||||
/* channel operating width */
|
/* channel operating width */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
@ -39,8 +41,22 @@ typedef enum {
|
||||||
/* Pre selected Power scenarios to be applied from BDF file */
|
/* Pre selected Power scenarios to be applied from BDF file */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
WIFI_POWER_SCENARIO_VOICE_CALL = 0,
|
WIFI_POWER_SCENARIO_VOICE_CALL = 0,
|
||||||
|
WIFI_POWER_SCENARIO_ON_HEAD_CELL_OFF = 1,
|
||||||
|
WIFI_POWER_SCENARIO_ON_HEAD_CELL_ON = 2,
|
||||||
|
WIFI_POWER_SCENARIO_ON_BODY_CELL_OFF = 3,
|
||||||
|
WIFI_POWER_SCENARIO_ON_BODY_CELL_ON = 4,
|
||||||
} wifi_power_scenario;
|
} wifi_power_scenario;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* enum wlan_mac_band - Band information corresponding to the WLAN MAC.
|
||||||
|
*/
|
||||||
|
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_band;
|
||||||
|
|
||||||
typedef int wifi_radio;
|
typedef int wifi_radio;
|
||||||
typedef int wifi_channel;
|
typedef int wifi_channel;
|
||||||
|
|
||||||
|
@ -90,6 +106,17 @@ typedef struct wifi_interface_info *wifi_interface_handle;
|
||||||
/* Initialize/Cleanup */
|
/* Initialize/Cleanup */
|
||||||
|
|
||||||
wifi_error wifi_initialize(wifi_handle *handle);
|
wifi_error wifi_initialize(wifi_handle *handle);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wifi_wait_for_driver
|
||||||
|
* Function should block until the driver is ready to proceed.
|
||||||
|
* Any errors from this function is considered fatal & will fail the HAL startup sequence.
|
||||||
|
*
|
||||||
|
* on success returns WIFI_SUCCESS
|
||||||
|
* on failure returns WIFI_ERROR_TIMED_OUT
|
||||||
|
*/
|
||||||
|
wifi_error wifi_wait_for_driver_ready(void);
|
||||||
|
|
||||||
typedef void (*wifi_cleaned_up_handler) (wifi_handle handle);
|
typedef void (*wifi_cleaned_up_handler) (wifi_handle handle);
|
||||||
void wifi_cleanup(wifi_handle handle, wifi_cleaned_up_handler handler);
|
void wifi_cleanup(wifi_handle handle, wifi_cleaned_up_handler handler);
|
||||||
void wifi_event_loop(wifi_handle handle);
|
void wifi_event_loop(wifi_handle handle);
|
||||||
|
@ -125,6 +152,7 @@ void wifi_get_error_info(wifi_error err, const char **msg); // return a pointer
|
||||||
#define WIFI_FEATURE_IE_WHITELIST 0x1000000 // Support Probe IE white listing
|
#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_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_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
|
||||||
// Add more features here
|
// Add more features here
|
||||||
|
|
||||||
|
|
||||||
|
@ -158,6 +186,25 @@ typedef struct {
|
||||||
// More event handlers
|
// More event handlers
|
||||||
} wifi_event_handler;
|
} wifi_event_handler;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
char iface_name[IFNAMSIZ + 1];
|
||||||
|
wifi_channel channel;
|
||||||
|
} wifi_iface_info;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
u32 wlan_mac_id;
|
||||||
|
/* BIT MASK of BIT(WLAN_MAC*) as represented by wlan_mac_band */
|
||||||
|
u32 mac_band;
|
||||||
|
/* Represents the connected Wi-Fi interfaces associated with each MAC */
|
||||||
|
int num_iface;
|
||||||
|
wifi_iface_info *iface_info;
|
||||||
|
} wifi_mac_info;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
void (*on_radio_mode_change)(wifi_request_id id, unsigned num_mac,
|
||||||
|
wifi_mac_info *mac_info);
|
||||||
|
} wifi_radio_mode_change_handler;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
void (*on_rssi_threshold_breached)(wifi_request_id id, u8 *cur_bssid, s8 cur_rssi);
|
void (*on_rssi_threshold_breached)(wifi_request_id id, u8 *cur_bssid, s8 cur_rssi);
|
||||||
} wifi_rssi_event_handler;
|
} wifi_rssi_event_handler;
|
||||||
|
@ -231,6 +278,7 @@ typedef struct wlan_driver_wake_reason_cnt_t {
|
||||||
//wifi HAL function pointer table
|
//wifi HAL function pointer table
|
||||||
typedef struct {
|
typedef struct {
|
||||||
wifi_error (* wifi_initialize) (wifi_handle *);
|
wifi_error (* wifi_initialize) (wifi_handle *);
|
||||||
|
wifi_error (* wifi_wait_for_driver_ready) (void);
|
||||||
void (* wifi_cleanup) (wifi_handle, wifi_cleaned_up_handler);
|
void (* wifi_cleanup) (wifi_handle, wifi_cleaned_up_handler);
|
||||||
void (*wifi_event_loop)(wifi_handle);
|
void (*wifi_event_loop)(wifi_handle);
|
||||||
void (* wifi_get_error_info) (wifi_error , const char **);
|
void (* wifi_get_error_info) (wifi_error , const char **);
|
||||||
|
@ -405,12 +453,17 @@ typedef struct {
|
||||||
*/
|
*/
|
||||||
wifi_error (*wifi_set_packet_filter)(wifi_interface_handle handle,
|
wifi_error (*wifi_set_packet_filter)(wifi_interface_handle handle,
|
||||||
const u8 *program, u32 len);
|
const u8 *program, u32 len);
|
||||||
|
wifi_error (*wifi_read_packet_filter)(wifi_interface_handle handle,
|
||||||
|
u32 src_offset, u8 *host_dst,
|
||||||
|
u32 length);
|
||||||
wifi_error (*wifi_get_roaming_capabilities)(wifi_interface_handle handle,
|
wifi_error (*wifi_get_roaming_capabilities)(wifi_interface_handle handle,
|
||||||
wifi_roaming_capabilities *caps);
|
wifi_roaming_capabilities *caps);
|
||||||
wifi_error (*wifi_enable_firmware_roaming)(wifi_interface_handle handle,
|
wifi_error (*wifi_enable_firmware_roaming)(wifi_interface_handle handle,
|
||||||
fw_roaming_state_t state);
|
fw_roaming_state_t state);
|
||||||
wifi_error (*wifi_configure_roaming)(wifi_interface_handle handle,
|
wifi_error (*wifi_configure_roaming)(wifi_interface_handle handle,
|
||||||
wifi_roaming_config *roaming_config);
|
wifi_roaming_config *roaming_config);
|
||||||
|
wifi_error (*wifi_set_radio_mode_change_handler)(wifi_request_id id, wifi_interface_handle
|
||||||
|
iface, wifi_radio_mode_change_handler eh);
|
||||||
} wifi_hal_fn;
|
} wifi_hal_fn;
|
||||||
wifi_error init_wifi_vendor_hal_func_table(wifi_hal_fn *fn);
|
wifi_error init_wifi_vendor_hal_func_table(wifi_hal_fn *fn);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -64,7 +64,7 @@ typedef u32 NanDataPathId;
|
||||||
#define NAN_MAX_SDEA_SERVICE_SPECIFIC_INFO_LEN 1024
|
#define NAN_MAX_SDEA_SERVICE_SPECIFIC_INFO_LEN 1024
|
||||||
#define NAN_SECURITY_MIN_PASSPHRASE_LEN 8
|
#define NAN_SECURITY_MIN_PASSPHRASE_LEN 8
|
||||||
#define NAN_SECURITY_MAX_PASSPHRASE_LEN 63
|
#define NAN_SECURITY_MAX_PASSPHRASE_LEN 63
|
||||||
|
#define NAN_MAX_CHANNEL_INFO_SUPPORTED 4
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Definition of various NanResponseType
|
Definition of various NanResponseType
|
||||||
|
@ -137,6 +137,13 @@ typedef enum {
|
||||||
NAN_TCA_ID_CLUSTER_SIZE = 0
|
NAN_TCA_ID_CLUSTER_SIZE = 0
|
||||||
} NanTcaType;
|
} NanTcaType;
|
||||||
|
|
||||||
|
/* NAN Channel Info */
|
||||||
|
typedef struct {
|
||||||
|
u32 channel;
|
||||||
|
u32 bandwidth;
|
||||||
|
u32 nss;
|
||||||
|
} NanChannelInfo;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Various NAN Protocol Response code
|
Various NAN Protocol Response code
|
||||||
*/
|
*/
|
||||||
|
@ -224,6 +231,12 @@ typedef enum {
|
||||||
NAN_DP_CONFIG_SECURITY
|
NAN_DP_CONFIG_SECURITY
|
||||||
} NanDataPathSecurityCfgStatus;
|
} NanDataPathSecurityCfgStatus;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
NAN_QOS_NOT_REQUIRED = 0,
|
||||||
|
NAN_QOS_REQUIRED
|
||||||
|
} NanQosCfgStatus;
|
||||||
|
|
||||||
|
|
||||||
/* Data request Responder's response */
|
/* Data request Responder's response */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
NAN_DP_REQUEST_ACCEPT = 0,
|
NAN_DP_REQUEST_ACCEPT = 0,
|
||||||
|
@ -302,6 +315,10 @@ typedef struct {
|
||||||
#define NAN_RANGING_INDICATE_INGRESS_MET_MASK 0x02
|
#define NAN_RANGING_INDICATE_INGRESS_MET_MASK 0x02
|
||||||
#define NAN_RANGING_INDICATE_EGRESS_MET_MASK 0x04
|
#define NAN_RANGING_INDICATE_EGRESS_MET_MASK 0x04
|
||||||
|
|
||||||
|
/* NAN schedule update reason MASKS */
|
||||||
|
#define NAN_SCHEDULE_UPDATE_NSS_MASK 0x01
|
||||||
|
#define NAN_SCHEDULE_UPDATE_CHANNEL_MASK 0x02
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Structure to set the Service Descriptor Extension
|
Structure to set the Service Descriptor Extension
|
||||||
Attribute (SDEA) passed as part of NanPublishRequest/
|
Attribute (SDEA) passed as part of NanPublishRequest/
|
||||||
|
@ -330,6 +347,11 @@ typedef struct {
|
||||||
when configured NanRangeReportInd received
|
when configured NanRangeReportInd received
|
||||||
*/
|
*/
|
||||||
NanRangeReport range_report;
|
NanRangeReport range_report;
|
||||||
|
/*
|
||||||
|
NAN QOS required flag to indicate
|
||||||
|
if QOS is required or not.
|
||||||
|
*/
|
||||||
|
NanQosCfgStatus qos_cfg;
|
||||||
} NanSdeaCtrlParams;
|
} NanSdeaCtrlParams;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -340,7 +362,7 @@ typedef struct {
|
||||||
Distance to the NAN device with the MAC address indicated
|
Distance to the NAN device with the MAC address indicated
|
||||||
with ranged mac address.
|
with ranged mac address.
|
||||||
*/
|
*/
|
||||||
u32 range_measurement_cm;
|
u32 range_measurement_mm;
|
||||||
/* Ranging event matching the configuration of continuous/ingress/egress. */
|
/* Ranging event matching the configuration of continuous/ingress/egress. */
|
||||||
u32 ranging_event_type;
|
u32 ranging_event_type;
|
||||||
} NanRangeInfo;
|
} NanRangeInfo;
|
||||||
|
@ -632,10 +654,10 @@ typedef struct {
|
||||||
BIT2 - Egress distance is >=.
|
BIT2 - Egress distance is >=.
|
||||||
*/
|
*/
|
||||||
u32 config_ranging_indications;
|
u32 config_ranging_indications;
|
||||||
/* Ingress distance in centimeters (optional) */
|
/* Ingress distance in millimeters (optional) */
|
||||||
u32 distance_ingress_cm;
|
u32 distance_ingress_mm;
|
||||||
/* Egress distance in centimeters (optional) */
|
/* Egress distance in millmilliimeters (optional) */
|
||||||
u32 distance_egress_cm;
|
u32 distance_egress_mm;
|
||||||
} NanRangingCfg;
|
} NanRangingCfg;
|
||||||
|
|
||||||
/* NAN Ranging request's response */
|
/* NAN Ranging request's response */
|
||||||
|
@ -973,6 +995,34 @@ typedef struct {
|
||||||
*/
|
*/
|
||||||
u8 config_subscribe_sid_beacon;
|
u8 config_subscribe_sid_beacon;
|
||||||
u32 subscribe_sid_beacon_val; // default value 0x0
|
u32 subscribe_sid_beacon_val; // default value 0x0
|
||||||
|
/*
|
||||||
|
Discovery Beacon Interval config.
|
||||||
|
Default value is 128 msec in 2G DW and 176 msec in 2G/5G DW.
|
||||||
|
When 0 value is passed it is reset to default value of 128 or 176 msec.
|
||||||
|
*/
|
||||||
|
u8 config_discovery_beacon_int;
|
||||||
|
u32 discovery_beacon_interval;
|
||||||
|
/*
|
||||||
|
Enable Number of Spatial Streams.
|
||||||
|
This is NAN Power Optimization feature for NAN discovery.
|
||||||
|
*/
|
||||||
|
u8 config_nss;
|
||||||
|
// default value is implementation specific and passing 0 sets it to default
|
||||||
|
u32 nss;
|
||||||
|
/*
|
||||||
|
Enable device level NAN Ranging feature.
|
||||||
|
0 - Disable
|
||||||
|
1 - Enable
|
||||||
|
*/
|
||||||
|
u8 config_enable_ranging;
|
||||||
|
u32 enable_ranging;
|
||||||
|
/*
|
||||||
|
Enable/Disable DW Early termination.
|
||||||
|
0 - Disable
|
||||||
|
1 - Enable
|
||||||
|
*/
|
||||||
|
u8 config_dw_early_termination;
|
||||||
|
u32 enable_dw_termination;
|
||||||
} NanEnableRequest;
|
} NanEnableRequest;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1421,6 +1471,34 @@ typedef struct {
|
||||||
*/
|
*/
|
||||||
u8 config_subscribe_sid_beacon;
|
u8 config_subscribe_sid_beacon;
|
||||||
u32 subscribe_sid_beacon_val; // default value 0x0
|
u32 subscribe_sid_beacon_val; // default value 0x0
|
||||||
|
/*
|
||||||
|
Discovery Beacon Interval config.
|
||||||
|
Default value is 128 msec in 2G DW and 176 msec in 2G/5G DW.
|
||||||
|
When 0 value is passed it is reset to default value of 128 or 176 msec.
|
||||||
|
*/
|
||||||
|
u8 config_discovery_beacon_int;
|
||||||
|
u32 discovery_beacon_interval;
|
||||||
|
/*
|
||||||
|
Enable Number of Spatial Streams.
|
||||||
|
This is NAN Power Optimization feature for NAN discovery.
|
||||||
|
*/
|
||||||
|
u8 config_nss;
|
||||||
|
// default value is implementation specific and passing 0 sets it to default
|
||||||
|
u32 nss;
|
||||||
|
/*
|
||||||
|
Enable device level NAN Ranging feature.
|
||||||
|
0 - Disable
|
||||||
|
1 - Enable
|
||||||
|
*/
|
||||||
|
u8 config_enable_ranging;
|
||||||
|
u32 enable_ranging;
|
||||||
|
/*
|
||||||
|
Enable/Disable DW Early termination.
|
||||||
|
0 - Disable
|
||||||
|
1 - Enable
|
||||||
|
*/
|
||||||
|
u8 config_dw_early_termination;
|
||||||
|
u32 enable_dw_termination;
|
||||||
} NanConfigRequest;
|
} NanConfigRequest;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1612,6 +1690,7 @@ typedef struct
|
||||||
u32 amHopCountExpireCount;
|
u32 amHopCountExpireCount;
|
||||||
u32 ndpChannelFreq;
|
u32 ndpChannelFreq;
|
||||||
u32 ndpChannelFreq2;
|
u32 ndpChannelFreq2;
|
||||||
|
u32 schedUpdateChannelFreq;
|
||||||
} NanSyncStats;
|
} NanSyncStats;
|
||||||
|
|
||||||
/* NAN Misc DE Statistics */
|
/* NAN Misc DE Statistics */
|
||||||
|
@ -2212,8 +2291,44 @@ typedef struct {
|
||||||
expected reason codes.
|
expected reason codes.
|
||||||
*/
|
*/
|
||||||
NanStatusType reason_code;
|
NanStatusType reason_code;
|
||||||
|
/* Number of channels for which info is indicated */
|
||||||
|
u32 num_channels;
|
||||||
|
/*
|
||||||
|
Data indicating the Channel list and BW of the channel.
|
||||||
|
*/
|
||||||
|
NanChannelInfo channel_info[NAN_MAX_CHANNEL_INFO_SUPPORTED];
|
||||||
} NanDataPathConfirmInd;
|
} NanDataPathConfirmInd;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Event indication of schedule update is received on both
|
||||||
|
initiator and responder when a schedule change occurs
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
/*
|
||||||
|
NMI mac address
|
||||||
|
*/
|
||||||
|
u8 peer_mac_addr[NAN_MAC_ADDR_LEN];
|
||||||
|
/*
|
||||||
|
Reason code indicating the cause of schedule update.
|
||||||
|
BIT_0 NSS Update
|
||||||
|
BIT_1 Channel list update
|
||||||
|
*/
|
||||||
|
u32 schedule_update_reason_code;
|
||||||
|
/* Number of channels for which info is indicated */
|
||||||
|
u32 num_channels;
|
||||||
|
/*
|
||||||
|
Data indicating the Channel list and BW of the channel.
|
||||||
|
*/
|
||||||
|
NanChannelInfo channel_info[NAN_MAX_CHANNEL_INFO_SUPPORTED];
|
||||||
|
/* Number of NDP instance Ids */
|
||||||
|
u8 num_ndp_instances;
|
||||||
|
/*
|
||||||
|
Unique token Id generated on the initiator/responder side
|
||||||
|
used for a NDP session between two NAN devices
|
||||||
|
*/
|
||||||
|
NanDataPathId ndp_instance_id[];
|
||||||
|
} NanDataPathScheduleUpdateInd;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Event indication received on the
|
Event indication received on the
|
||||||
initiator/responder side terminating
|
initiator/responder side terminating
|
||||||
|
@ -2250,7 +2365,7 @@ typedef struct {
|
||||||
Distance to the NAN device with the MAC address indicated
|
Distance to the NAN device with the MAC address indicated
|
||||||
with ranged mac address.
|
with ranged mac address.
|
||||||
*/
|
*/
|
||||||
u32 range_measurement_cm;
|
u32 range_measurement_mm;
|
||||||
} NanRangeReportInd;
|
} NanRangeReportInd;
|
||||||
|
|
||||||
/* Response and Event Callbacks */
|
/* Response and Event Callbacks */
|
||||||
|
@ -2274,6 +2389,7 @@ typedef struct {
|
||||||
void (*EventTransmitFollowup) (NanTransmitFollowupInd* event);
|
void (*EventTransmitFollowup) (NanTransmitFollowupInd* event);
|
||||||
void (*EventRangeRequest) (NanRangeRequestInd* event);
|
void (*EventRangeRequest) (NanRangeRequestInd* event);
|
||||||
void (*EventRangeReport) (NanRangeReportInd* event);
|
void (*EventRangeReport) (NanRangeReportInd* event);
|
||||||
|
void (*EventScheduleUpdate)(NanDataPathScheduleUpdateInd* event);
|
||||||
} NanCallbackHandler;
|
} NanCallbackHandler;
|
||||||
|
|
||||||
/**@brief nan_enable_request
|
/**@brief nan_enable_request
|
||||||
|
|
Loading…
Reference in a new issue