qcacmn: Add support to query RCPI info

RCPI is measure of received RF power in the selected channel for a
received frame and is measured at the antenna connector and shall be
measured over an entire frame. It is a monotonically increasing,
logarithmic function of received power level.

Wlan firmware computes RCPI.

Add host support to query firmware for RCPI information of
peer mac address in sta, p2p client, softap and p2p go modes.

Change-Id: I27fe45e993bd9b157fe33ca08a56330c1c950d16
CRs-Fixed: 1093187
This commit is contained in:
Rajeev Kumar Sirasanagandla
2016-11-22 21:28:54 +05:30
committed by snandini
parent 9e89385292
commit cddf6fe985
3 changed files with 72 additions and 0 deletions

View File

@@ -5405,6 +5405,7 @@ typedef enum {
wmi_11d_new_country_event_id,
wmi_get_arp_stats_req_id,
wmi_service_available_event_id,
wmi_update_rcpi_event_id,
wmi_events_max,
} wmi_conv_event_id;
@@ -7555,6 +7556,48 @@ typedef struct {
uint32_t usr_list[GID_OVERLOAD_GROUP_COUNT];
} wmi_host_peer_gid_userpos_list_event;
/**
* enum rcpi_measurement_type - for identifying type of rcpi measurement
* @RCPI_MEASUREMENT_TYPE_AVG_MGMT: avg rcpi of mgmt frames
* @RCPI_MEASUREMENT_TYPE_AVG_DATA: avg rcpi of data frames
* @RCPI_MEASUREMENT_TYPE_LAST_MGMT: rcpi of last mgmt frame
* @RCPI_MEASUREMENT_TYPE_LAST_DATA: rcpi of last data frame
* @RCPI_MEASUREMENT_TYPE_INVALID: invalid rcpi measurement type
*/
enum rcpi_measurement_type {
RCPI_MEASUREMENT_TYPE_AVG_MGMT = 0x1,
RCPI_MEASUREMENT_TYPE_AVG_DATA = 0x2,
RCPI_MEASUREMENT_TYPE_LAST_MGMT = 0x3,
RCPI_MEASUREMENT_TYPE_LAST_DATA = 0x4,
RCPI_MEASUREMENT_TYPE_INVALID = 0x5,
};
/**
* struct rcpi_req - RCPI req parameter
* @vdev_id: virtual device id
* @measurement_type: type of rcpi from enum wmi_rcpi_measurement_type
* @mac_addr: peer mac addr for which measurement is required
*/
struct rcpi_req {
uint32_t vdev_id;
enum rcpi_measurement_type measurement_type;
uint8_t mac_addr[IEEE80211_ADDR_LEN];
};
/**
* struct rcpi_res - RCPI response parameter
* @vdev_id: virtual device id
* @measurement_type: type of rcpi from enum wmi_rcpi_measurement_type
* @mac_addr: peer mac addr for which measurement is required
* @rcpi_value: value of RCPI computed by firmware
*/
struct rcpi_res {
uint32_t vdev_id;
enum rcpi_measurement_type measurement_type;
uint8_t mac_addr[IEEE80211_ADDR_LEN];
int32_t rcpi_value;
};
#define WMI_HOST_BOARD_MCN_STRING_MAX_SIZE 19
#define WMI_HOST_BOARD_MCN_STRING_BUF_SIZE \
(WMI_HOST_BOARD_MCN_STRING_MAX_SIZE+1) /* null-terminator */